From 34018f510c74e4ce3fcffd5d5ed7ce2fb5e836e8 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Mon, 23 Apr 2018 18:06:32 +0900 Subject: [PATCH 01/16] hwc: add tdm_backend_register_func_hwc in tdm_backend.h Change-Id: Idd35dc2d2cc92998c746433a9803ae78f7ae285b --- include/tdm_backend.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/tdm_backend.h b/include/tdm_backend.h index d43d73c..f4de1a6 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -1210,6 +1210,19 @@ tdm_error tdm_backend_register_func_layer(tdm_display *dpy, tdm_func_layer *func_layer); /** + * @brief Register the backend hwc functions to a display + * @param[in] dpy A display object + * @param[in] func_hwc hwc functions + * @return #TDM_ERROR_NONE if success. Otherwise, error value. + * @see tdm_backend_register_func_display, tdm_backend_register_func_output + * @remarks + * A backend module @b SHOULD set the backend hwc functions at least. + * @since 2.0.0 + */ +tdm_error +tdm_backend_register_func_hwc(tdm_display *dpy, tdm_func_hwc *func_hwc) + +/** * @brief Register the backend hwc_window functions to a display * @param[in] dpy A display object * @param[in] func_hwc_window hwc_window functions -- 2.7.4 From 25bcdad6a8f0194f10a78af12fd0440f5689f297 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Wed, 25 Apr 2018 11:51:36 +0900 Subject: [PATCH 02/16] fix build break Change-Id: I2f83c749d48a25a9cb9a62443d02777340129826 --- include/tdm_backend.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/tdm_backend.h b/include/tdm_backend.h index f4de1a6..53f979a 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -1220,7 +1220,7 @@ tdm_backend_register_func_layer(tdm_display *dpy, tdm_func_layer *func_layer); * @since 2.0.0 */ tdm_error -tdm_backend_register_func_hwc(tdm_display *dpy, tdm_func_hwc *func_hwc) +tdm_backend_register_func_hwc(tdm_display *dpy, tdm_func_hwc *func_hwc); /** * @brief Register the backend hwc_window functions to a display -- 2.7.4 From deb575f8a41c49857c2bf6d4b562dbc70bd614b0 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Mon, 30 Apr 2018 13:05:28 +0900 Subject: [PATCH 03/16] change the package name change the libtbm-utests to the libtbm-haltests Change-Id: If56366b88d0280d33eb609ac66d28e73c85834e8 --- packaging/libtdm.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 7082681..1e422eb 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -47,11 +47,11 @@ Requires: libtdm-devel Tizen Display Manager Client Library headers %if "%{UTEST_PACKAGE}" == "1" -%package utests +%package haltests Summary: Tizen Display Manager unit tests package Group: Development/Libraries -%description utests +%description haltests Test module for testing libtdm APIs %endif @@ -152,7 +152,7 @@ rm -f %{_unitdir_user}/basic.target.wants/tdm-socket-user.path %{_bindir}/tdm-test-client %if "%{UTEST_PACKAGE}" == "1" -%files utests +%files haltests %defattr(-,root,root,-) %{_bindir}/tdm-utests %endif -- 2.7.4 From 5b4a2597ab95a6bdec70b161c95922f7168fa9d3 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Mon, 30 Apr 2018 13:06:19 +0900 Subject: [PATCH 04/16] package version up to 1.18.0 Change-Id: I9edc4541e61d361a235ae5d333a423712afa054b --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 1e422eb..0e29b11 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define UTEST_GCOV 0 Name: libtdm -Version: 1.17.1 +Version: 1.18.0 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From a67472c9cc914fda35f7bd3ea00bd6bba6140f96 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Fri, 4 May 2018 13:02:16 +0900 Subject: [PATCH 05/16] change the utests to haltests change all symbol and file name. Change-Id: Id48ccad285938dfcbb8f136c71592806c120d47e --- Makefile.am | 4 +- configure.ac | 10 +- haltests/Makefile.am | 45 +++ utests/src/ut_tdm.h => haltests/src/tc_tdm.h | 68 ++-- .../src/tc_tdm_backend_capture.cpp | 88 +++--- .../src/tc_tdm_backend_display.cpp | 280 ++++++++-------- .../src/tc_tdm_backend_env.cpp | 2 +- .../src/tc_tdm_backend_pp.cpp | 112 +++---- .../src/tc_tdm_buffer.cpp | 58 ++-- .../src/tc_tdm_client.cpp | 148 ++++----- .../src/tc_tdm_display.cpp | 10 +- .../ut_tdm_env.cpp => haltests/src/tc_tdm_env.cpp | 2 +- .../src/tc_tdm_event_loop.cpp | 24 +- .../src/tc_tdm_helper.cpp | 18 +- .../src/tc_tdm_hwc_window.cpp | 6 +- .../src/tc_tdm_layer.cpp | 352 ++++++++++----------- .../ut_tdm_log.cpp => haltests/src/tc_tdm_log.cpp | 36 +-- .../src/tc_tdm_main.cpp | 2 +- .../src/tc_tdm_output.cpp | 324 +++++++++---------- .../src/tc_tdm_output_hwc.cpp | 18 +- .../src/tc_tdm_vblank.cpp | 176 +++++------ packaging/libtdm.spec | 20 +- utests/Makefile.am | 45 --- 23 files changed, 924 insertions(+), 924 deletions(-) create mode 100644 haltests/Makefile.am rename utests/src/ut_tdm.h => haltests/src/tc_tdm.h (74%) rename utests/src/ut_tdm_backend_capture.cpp => haltests/src/tc_tdm_backend_capture.cpp (91%) rename utests/src/ut_tdm_backend_display.cpp => haltests/src/tc_tdm_backend_display.cpp (83%) rename utests/src/ut_tdm_backend_env.cpp => haltests/src/tc_tdm_backend_env.cpp (98%) rename utests/src/ut_tdm_backend_pp.cpp => haltests/src/tc_tdm_backend_pp.cpp (86%) rename utests/src/ut_tdm_buffer.cpp => haltests/src/tc_tdm_buffer.cpp (79%) rename utests/src/ut_tdm_client.cpp => haltests/src/tc_tdm_client.cpp (88%) rename utests/src/ut_tdm_display.cpp => haltests/src/tc_tdm_display.cpp (98%) rename utests/src/ut_tdm_env.cpp => haltests/src/tc_tdm_env.cpp (99%) rename utests/src/ut_tdm_event_loop.cpp => haltests/src/tc_tdm_event_loop.cpp (88%) rename utests/src/ut_tdm_helper.cpp => haltests/src/tc_tdm_helper.cpp (96%) rename utests/src/ut_tdm_hwc_window.cpp => haltests/src/tc_tdm_hwc_window.cpp (98%) rename utests/src/ut_tdm_layer.cpp => haltests/src/tc_tdm_layer.cpp (77%) rename utests/src/ut_tdm_log.cpp => haltests/src/tc_tdm_log.cpp (72%) rename utests/src/ut_tdm_main.cpp => haltests/src/tc_tdm_main.cpp (98%) rename utests/src/ut_tdm_output.cpp => haltests/src/tc_tdm_output.cpp (81%) rename utests/src/ut_tdm_output_hwc.cpp => haltests/src/tc_tdm_output_hwc.cpp (96%) rename utests/src/ut_tdm_vblank.cpp => haltests/src/tc_tdm_vblank.cpp (86%) delete mode 100644 utests/Makefile.am diff --git a/Makefile.am b/Makefile.am index c6a6d73..840406a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ -if HAVE_UTEST -SUBDIRS = . include protocol common src backends client tools utests +if HAVE_HALTESTS +SUBDIRS = . include protocol common src backends client tools haltests else SUBDIRS = . include protocol common src backends client tools endif diff --git a/configure.ac b/configure.ac index 1829d04..dd27580 100644 --- a/configure.ac +++ b/configure.ac @@ -31,11 +31,11 @@ LT_INIT([disable-static]) # Enable quiet compiles on automake 1.11. m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -AC_ARG_WITH(utests, AS_HELP_STRING([--with-utests=yes/no], [whether build/run unit tests or not]), - [ utests="$withval" ], - [ utests="no" ]) +AC_ARG_WITH(haltests, AS_HELP_STRING([--with-haltests=yes/no], [whether build/run unit tests or not]), + [ haltests="$withval" ], + [ haltests="no" ]) -AM_CONDITIONAL(HAVE_UTEST, test "x$utests" = "xyes") +AM_CONDITIONAL(HAVE_HALTESTS, test "x$haltests" = "xyes") AC_PATH_PROG([wayland_scanner], [wayland-scanner]) if test x$wayland_scanner = x; then @@ -103,7 +103,7 @@ AC_OUTPUT([ client/libtdm-client.pc client/Makefile tools/Makefile - utests/Makefile]) + haltests/Makefile]) echo "" echo "$PACKAGE_STRING will be compiled with:" diff --git a/haltests/Makefile.am b/haltests/Makefile.am new file mode 100644 index 0000000..276b503 --- /dev/null +++ b/haltests/Makefile.am @@ -0,0 +1,45 @@ +bin_PROGRAMS = tdm-haltests + +tdm_haltests_SOURCES = \ + src/tc_tdm_main.cpp \ + src/tc_tdm_log.cpp \ + src/tc_tdm_env.cpp \ + src/tc_tdm_event_loop.cpp \ + src/tc_tdm_buffer.cpp \ + src/tc_tdm_helper.cpp \ + src/tc_tdm_vblank.cpp \ + src/tc_tdm_display.cpp \ + src/tc_tdm_output.cpp \ + src/tc_tdm_layer.cpp \ + src/tc_tdm_client.cpp \ + src/tc_tdm_backend_env.cpp \ + src/tc_tdm_backend_display.cpp \ + src/tc_tdm_backend_pp.cpp \ + src/tc_tdm_backend_capture.cpp + +tdm_haltests_SOURCES += \ + ../tools/buffers.c + +tdm_haltests_CXXFLAGS = \ + $(CXXFLAGS) \ + $(TDM_CFLAGS) \ + -I../src \ + -I../include \ + -I../client \ + -I../tools \ + -I$(includedir)/gtest \ + -fpermissive +# The flag -w is used, because there are many warnings in libtdm's sources. +# Warnings occur because we build project with g++. +# In C++ we need to use explicit types conversion. + +tdm_haltests_LDFLAGS = \ + ${LDFLAGS} \ + $(TDM_LIBS) \ + $(top_builddir)/src/libtdm.la \ + $(top_builddir)/client/libtdm-client.la \ + $(top_builddir)/common/libtdm-common.la \ + -lgtest + +check: + ./tdm-haltests diff --git a/utests/src/ut_tdm.h b/haltests/src/tc_tdm.h similarity index 74% rename from utests/src/ut_tdm.h rename to haltests/src/tc_tdm.h index b7265fa..853f45a 100644 --- a/utests/src/ut_tdm.h +++ b/haltests/src/tc_tdm.h @@ -112,7 +112,7 @@ extern bool enable_porting_debug; #define TDM_UT_DUMP_DIR "/tmp/tdm_dump" #define TDM_UT_INVALID_VALUE -42 #define TDM_UT_BUFFER_SIZE 256 -#define TDM_UT_VBLANK_NAME "ut_tdm_vblank" +#define TDM_UT_VBLANK_NAME "tc_tdm_vblank" using ::testing::TestWithParam; using ::testing::Bool; @@ -167,40 +167,40 @@ public: extern "C" void __gcov_flush(void); #endif -tdm_error ut_tdm_display_handle_events(tdm_display *dpy); -bool ut_tdm_display_has_pp_capability(tdm_display *dpy); -bool ut_tdm_display_has_capture_capability(tdm_display *dpy); +tdm_error tc_tdm_display_handle_events(tdm_display *dpy); +bool tc_tdm_display_has_pp_capability(tdm_display *dpy); +bool tc_tdm_display_has_capture_capability(tdm_display *dpy); -bool ut_tdm_buffer_create(int width, int height, tbm_format format, int flags, bool fill, +bool tc_tdm_buffer_create(int width, int height, tbm_format format, int flags, bool fill, int count, tbm_surface_h *buffers); -bool ut_tdm_output_is_async_dpms_enable(tdm_output *output); -bool ut_tdm_output_is_hwc_enable(tdm_output *output); -bool ut_tdm_output_is_aod_enable(tdm_output *output); -bool ut_tdm_output_is_connected(tdm_output *output); -bool ut_tdm_output_mode_setting(tdm_output *output); -bool ut_tdm_output_prepare(tdm_display *dpy, tdm_output *output, bool fill); -bool ut_tdm_output_prepare_all_output(tdm_display *dpy, tdm_output **outputs, int output_count, bool fill); -bool ut_tdm_output_unset(tdm_display *dpy, tdm_output *output); -double ut_tdm_output_get_vblank_interval_time(tdm_output *output); -tdm_layer *ut_tdm_output_get_primary_layer(tdm_output *output); - -bool ut_tdm_layer_is_cursor_layer(tdm_layer *layer); -bool ut_tdm_layer_is_primary_layer(tdm_layer *layer); -bool ut_tdm_layer_is_video_layer(tdm_layer *layer); -bool ut_tdm_layer_support_scale(tdm_layer *layer); -bool ut_tdm_layer_support_no_crop(tdm_layer *layer); -bool ut_tdm_layer_prepare_buffer(tdm_layer *layer, tbm_surface_h *buffers, int buffer_count, bool fill); -bool ut_tdm_layer_prepare_buffer_queue(tdm_layer *layer, tbm_surface_queue_h *buffer_queue); -bool ut_tdm_layer_fill_info(tdm_layer *layer, tbm_surface_h buffer, tbm_surface_queue_h buffer_queue, tdm_info_layer *info); -bool ut_tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer); -bool ut_tdm_layer_set_buffer_with_pos(tdm_layer *layer, tbm_surface_h buffer, tdm_pos *pos); -unsigned int ut_tdm_layer_get_output_pipe(tdm_layer *layer); -tbm_format ut_tdm_layer_find_best_format(tdm_layer *layer); -bool ut_tdm_layer_is_avaiable(tdm_layer *layer); - -bool ut_tdm_pp_fill_info(tbm_surface_h srcbuf, tbm_surface_h dstbuf, tdm_transform transform, tdm_info_pp *info); -bool ut_tdm_capture_fill_info(tdm_output *output, tbm_surface_h buffer, tdm_transform transform, +bool tc_tdm_output_is_async_dpms_enable(tdm_output *output); +bool tc_tdm_output_is_hwc_enable(tdm_output *output); +bool tc_tdm_output_is_aod_enable(tdm_output *output); +bool tc_tdm_output_is_connected(tdm_output *output); +bool tc_tdm_output_mode_setting(tdm_output *output); +bool tc_tdm_output_prepare(tdm_display *dpy, tdm_output *output, bool fill); +bool tc_tdm_output_prepare_all_output(tdm_display *dpy, tdm_output **outputs, int output_count, bool fill); +bool tc_tdm_output_unset(tdm_display *dpy, tdm_output *output); +double tc_tdm_output_get_vblank_interval_time(tdm_output *output); +tdm_layer *tc_tdm_output_get_primary_layer(tdm_output *output); + +bool tc_tdm_layer_is_cursor_layer(tdm_layer *layer); +bool tc_tdm_layer_is_primary_layer(tdm_layer *layer); +bool tc_tdm_layer_is_video_layer(tdm_layer *layer); +bool tc_tdm_layer_support_scale(tdm_layer *layer); +bool tc_tdm_layer_support_no_crop(tdm_layer *layer); +bool tc_tdm_layer_prepare_buffer(tdm_layer *layer, tbm_surface_h *buffers, int buffer_count, bool fill); +bool tc_tdm_layer_prepare_buffer_queue(tdm_layer *layer, tbm_surface_queue_h *buffer_queue); +bool tc_tdm_layer_fill_info(tdm_layer *layer, tbm_surface_h buffer, tbm_surface_queue_h buffer_queue, tdm_info_layer *info); +bool tc_tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer); +bool tc_tdm_layer_set_buffer_with_pos(tdm_layer *layer, tbm_surface_h buffer, tdm_pos *pos); +unsigned int tc_tdm_layer_get_output_pipe(tdm_layer *layer); +tbm_format tc_tdm_layer_find_best_format(tdm_layer *layer); +bool tc_tdm_layer_is_avaiable(tdm_layer *layer); + +bool tc_tdm_pp_fill_info(tbm_surface_h srcbuf, tbm_surface_h dstbuf, tdm_transform transform, tdm_info_pp *info); +bool tc_tdm_capture_fill_info(tdm_output *output, tbm_surface_h buffer, tdm_transform transform, tdm_capture_type type, int frequency, bool stretch, tdm_info_capture *info); /******************************************************************************/ @@ -240,7 +240,7 @@ public: void TearDown(void) { TDMBackendBasic::TearDown(); } }; -char ut_tdm_backend_getchar(void); +char tc_tdm_backend_getchar(void); #define TDM_UT_ASK_YNR(fmt, ...) \ do { \ @@ -248,7 +248,7 @@ char ut_tdm_backend_getchar(void); char ch; \ do { \ printf(fmt" [Y]es, [n]o, [r]etry): ", ##__VA_ARGS__); \ - ch = ut_tdm_backend_getchar(); \ + ch = tc_tdm_backend_getchar(); \ } while(ch != 'y' && ch != 'n' && ch != 'r'); \ if (ch == 'n') \ GTEST_FATAL_FAILURE_("tc failed"); \ diff --git a/utests/src/ut_tdm_backend_capture.cpp b/haltests/src/tc_tdm_backend_capture.cpp similarity index 91% rename from utests/src/ut_tdm_backend_capture.cpp rename to haltests/src/tc_tdm_backend_capture.cpp index 8eca5d6..010153f 100644 --- a/utests/src/ut_tdm_backend_capture.cpp +++ b/haltests/src/tc_tdm_backend_capture.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ class TDMBackendCapture : public TDMBackendDisplay @@ -127,10 +127,10 @@ void TDMBackendCapture::SetUp(void) ASSERT_TRUE(preferred_align == -1 || preferred_align > 0); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); } } @@ -140,10 +140,10 @@ void TDMBackendCapture::TearDown(void) tdm_capture_destroy(capture); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_unset(dpy, outputs[o]), true); + ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[o]), true); } DestroyBuffers(); @@ -156,7 +156,7 @@ bool TDMBackendCapture::FindLayer(int output_idx, tbm_format fmt, tdm_pos *punch tdm_error ret; int count; int primary_zpos, zpos; - tdm_layer *primary = ut_tdm_output_get_primary_layer(outputs[output_idx]); + tdm_layer *primary = tc_tdm_output_get_primary_layer(outputs[output_idx]); TDM_UT_RETURN_FALSE_IF_FAIL(primary != NULL); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(outputs[output_idx], &count) == TDM_ERROR_NONE); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_zpos(primary, &primary_zpos) == TDM_ERROR_NONE); @@ -209,15 +209,15 @@ bool TDMBackendCapture::TestPrepareDefault(void) tdm_error ret; for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; capture = tdm_output_create_capture(outputs[o], &ret); TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE); TDM_UT_RETURN_FALSE_IF_FAIL(capture != NULL); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_buffer_create(TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[0], 0, false, 3, buffers) == true); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_capture_fill_info(outputs[o], buffers[0], TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false, &info) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[0], 0, false, 3, buffers) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_capture_fill_info(outputs[o], buffers[0], TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false, &info) == true); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_capture_set_info(capture, &info) == TDM_ERROR_NONE); output = outputs[o]; @@ -259,8 +259,8 @@ bool TDMBackendCapture::TestPrepare(int output_idx, int w, int h, tbm_format fmt flags |= TBM_BO_SCANOUT; } - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_buffer_create(w, h, fmt, flags, false, 3, buffers) == true); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_capture_fill_info(outputs[output_idx], buffers[0], t, c, frequency, stretch, &info) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(w, h, fmt, flags, false, 3, buffers) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_capture_fill_info(outputs[output_idx], buffers[0], t, c, frequency, stretch, &info) == true); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_capture_set_info(capture, &info) == TDM_ERROR_NONE); output = outputs[output_idx]; @@ -293,7 +293,7 @@ void TDMBackendCapture::ShowBuffer(int b, tdm_pos *pos) ASSERT_NE(output, NULL); ASSERT_NE(dst_layer, NULL); - ASSERT_EQ(ut_tdm_layer_set_buffer_with_pos(dst_layer, buffers[b], pos), true); + ASSERT_EQ(tc_tdm_layer_set_buffer_with_pos(dst_layer, buffers[b], pos), true); ASSERT_EQ(tdm_output_commit(output, 0, NULL, NULL), TDM_ERROR_NONE); } @@ -317,7 +317,7 @@ void TDMBackendCapture::DestroyBuffers(void) } static void -_ut_tdm_capture_fit_rect(int src_w, int src_h, int dst_w, int dst_h, tdm_pos *fit) +_tc_tdm_capture_fit_rect(int src_w, int src_h, int dst_w, int dst_h, tdm_pos *fit) { float rw, rh; @@ -349,7 +349,7 @@ _ut_tdm_capture_fit_rect(int src_w, int src_h, int dst_w, int dst_h, tdm_pos *fi } bool -ut_tdm_capture_fill_info(tdm_output *output, tbm_surface_h buffer, tdm_transform transform, +tc_tdm_capture_fill_info(tdm_output *output, tbm_surface_h buffer, tdm_transform transform, tdm_capture_type type, int frequency, bool stretch, tdm_info_capture *info) { int bw, bh; @@ -376,7 +376,7 @@ ut_tdm_capture_fill_info(tdm_output *output, tbm_surface_h buffer, tdm_transform info->dst_config.pos.w = tbm_surface_get_width(buffer); info->dst_config.pos.h = tbm_surface_get_height(buffer); } else { - _ut_tdm_capture_fit_rect(mode->hdisplay, mode->vdisplay, + _tc_tdm_capture_fit_rect(mode->hdisplay, mode->vdisplay, tbm_surface_get_width(buffer), tbm_surface_get_height(buffer), &info->dst_config.pos); } @@ -523,7 +523,7 @@ TEST_P(TDMBackendCapture, CaptureSetInfoNullOther) } static void -_ut_tdm_capture_done_cb(tdm_capture *capture, tbm_surface_h buffer, void *user_data) +_tc_tdm_capture_done_cb(tdm_capture *capture, tbm_surface_h buffer, void *user_data) { bool *done = (bool*)user_data; if (done) @@ -537,7 +537,7 @@ TEST_P(TDMBackendCapture, CaptureSetDoneHandler) ASSERT_EQ(TestPrepareDefault(), true); - ASSERT_EQ(tdm_capture_set_done_handler(capture, _ut_tdm_capture_done_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_done_cb, NULL), TDM_ERROR_NONE); TestDone(); } @@ -547,7 +547,7 @@ TEST_P(TDMBackendCapture, CaptureSetDoneHandlerNullObject) TDM_UT_SKIP_FLAG(has_capture_cap); TDM_UT_SKIP_FLAG(capabilities & TDM_CAPTURE_CAPABILITY_OUTPUT); - ASSERT_EQ(tdm_capture_set_done_handler(NULL, _ut_tdm_capture_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_capture_set_done_handler(NULL, _tc_tdm_capture_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMBackendCapture, CaptureSetDoneHandlerNullOther) @@ -569,7 +569,7 @@ TEST_P(TDMBackendCapture, CaptureAttach) for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; for (int f = 0; f < format_count; f++) { @@ -635,7 +635,7 @@ TEST_P(TDMBackendCapture, CaptureCommitDpmsOff) ASSERT_EQ(TestPrepareDefault(), true); - ASSERT_EQ(ut_tdm_output_unset(dpy, output), true); + ASSERT_EQ(tc_tdm_output_unset(dpy, output), true); ASSERT_EQ(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); @@ -645,7 +645,7 @@ TEST_P(TDMBackendCapture, CaptureCommitDpmsOff) } static void -_ut_tdm_capture_done_cb2(tdm_capture *capture, tbm_surface_h buffer, void *user_data) +_tc_tdm_capture_done_cb2(tdm_capture *capture, tbm_surface_h buffer, void *user_data) { int *done = (int*)user_data; if (done) @@ -661,7 +661,7 @@ TEST_P(TDMBackendCapture, CaptureDestroyWithoutCommit) const tdm_output_mode *mode = NULL; int f = 0; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); @@ -671,7 +671,7 @@ TEST_P(TDMBackendCapture, CaptureDestroyWithoutCommit) ASSERT_EQ(TestPrepare(o, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true); - ASSERT_EQ(tdm_capture_set_done_handler(capture, _ut_tdm_capture_done_cb2, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_done_cb2, NULL), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) ASSERT_EQ(tdm_capture_attach(capture, buffers[b]), TDM_ERROR_NONE); @@ -692,7 +692,7 @@ TEST_P(TDMBackendCapture, CaptureDestroyBeforeDone) const tdm_output_mode *mode = NULL; int f = 0; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); @@ -702,7 +702,7 @@ TEST_P(TDMBackendCapture, CaptureDestroyBeforeDone) ASSERT_EQ(TestPrepare(o, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true); - ASSERT_EQ(tdm_capture_set_done_handler(capture, _ut_tdm_capture_done_cb2, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_done_cb2, NULL), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) ASSERT_EQ(tdm_capture_attach(capture, buffers[b]), TDM_ERROR_NONE); @@ -727,7 +727,7 @@ TEST_P(TDMBackendCapture, CaptureOneshotLetterboxSize) for (int o = 0; o < output_count; o++) { const tdm_output_mode *mode = NULL; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); @@ -752,7 +752,7 @@ TEST_P(TDMBackendCapture, CaptureOneshotLetterboxSize) ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f], TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true); - ASSERT_EQ(tdm_capture_set_done_handler(capture, _ut_tdm_capture_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_done_cb, &done), TDM_ERROR_NONE); retry: for (int b = 0; b < 3; b++) { @@ -761,7 +761,7 @@ retry: ASSERT_EQ(tdm_capture_commit(capture), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); #if 0 char temp[256]; @@ -793,7 +793,7 @@ TEST_P(TDMBackendCapture, CaptureOneshotFullSize) for (int o = 0; o < output_count; o++) { const tdm_output_mode *mode = NULL; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); @@ -818,7 +818,7 @@ TEST_P(TDMBackendCapture, CaptureOneshotFullSize) ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f], TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, true), true); - ASSERT_EQ(tdm_capture_set_done_handler(capture, _ut_tdm_capture_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_done_cb, &done), TDM_ERROR_NONE); retry: for (int b = 0; b < 3; b++) { @@ -827,7 +827,7 @@ retry: ASSERT_EQ(tdm_capture_commit(capture), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); #if 0 char temp[256]; @@ -859,7 +859,7 @@ TEST_P(TDMBackendCapture, CaptureOneshotAttachFewTimesInOneCommit) for (int o = 0; o < output_count; o++) { const tdm_output_mode *mode = NULL; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); @@ -885,7 +885,7 @@ TEST_P(TDMBackendCapture, CaptureOneshotAttachFewTimesInOneCommit) TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true); done = 0; - ASSERT_EQ(tdm_capture_set_done_handler(capture, _ut_tdm_capture_done_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_done_cb2, &done), TDM_ERROR_NONE); retry: for (int b = 0; b < 3; b++) @@ -894,7 +894,7 @@ retry: ASSERT_EQ(tdm_capture_commit(capture), TDM_ERROR_NONE); while (done != 3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) { #if 0 @@ -917,18 +917,18 @@ retry: } static void -_ut_tdm_backend_capture_buffer_release_cb(tbm_surface_h buffer, void *user_data) +_tc_tdm_backend_capture_buffer_release_cb(tbm_surface_h buffer, void *user_data) { TDMBackendCapture *backend_capture = (TDMBackendCapture*)user_data; - tdm_buffer_remove_release_handler(buffer, _ut_tdm_backend_capture_buffer_release_cb, backend_capture); + tdm_buffer_remove_release_handler(buffer, _tc_tdm_backend_capture_buffer_release_cb, backend_capture); ASSERT_EQ(tdm_capture_attach(backend_capture->capture, buffer), TDM_ERROR_NONE); ASSERT_EQ(tdm_capture_commit(backend_capture->capture), TDM_ERROR_NONE); } static void -_ut_tdm_capture_stream_done_cb(tdm_capture *capture, tbm_surface_h buffer, void *user_data) +_tc_tdm_capture_stream_done_cb(tdm_capture *capture, tbm_surface_h buffer, void *user_data) { TDMBackendCapture *backend_capture = (TDMBackendCapture*)user_data; @@ -939,7 +939,7 @@ _ut_tdm_capture_stream_done_cb(tdm_capture *capture, tbm_surface_h buffer, void snprintf(temp, sizeof temp, "f%d_b%d", f, b); DumpBuffer(b, temp); #endif - tdm_buffer_add_release_handler(buffer, _ut_tdm_backend_capture_buffer_release_cb, (void*)backend_capture); + tdm_buffer_add_release_handler(buffer, _tc_tdm_backend_capture_buffer_release_cb, (void*)backend_capture); backend_capture->ShowBuffer(b, &backend_capture->dst_pos); break; } @@ -959,7 +959,7 @@ TEST_P(TDMBackendCapture, CaptureStreamLetterboxSize) for (int o = 0; o < output_count; o++) { const tdm_output_mode *mode = NULL; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); @@ -984,7 +984,7 @@ TEST_P(TDMBackendCapture, CaptureStreamLetterboxSize) ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f], TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_STREAM, -1, false), true); - ASSERT_EQ(tdm_capture_set_done_handler(capture, _ut_tdm_capture_stream_done_cb, (void*)this), TDM_ERROR_NONE); + ASSERT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_stream_done_cb, (void*)this), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) ASSERT_EQ(tdm_capture_attach(capture, buffers[b]), TDM_ERROR_NONE); @@ -997,7 +997,7 @@ retry: ASSERT_EQ(tdm_capture_commit(capture), TDM_ERROR_NONE); while (!stream_exit) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); TDM_UT_ASK_YNR("* Successed to capture a output to a '%c%c%c%c' buffer as letterbox size and show? (output: %d, layer: %d)", FOURCC_STR(formats[f]), pipe, dst_layer_index); @@ -1019,7 +1019,7 @@ TEST_P(TDMBackendCapture, CaptureStreamFullSize) for (int o = 0; o < output_count; o++) { const tdm_output_mode *mode = NULL; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); @@ -1044,7 +1044,7 @@ TEST_P(TDMBackendCapture, CaptureStreamFullSize) ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f], TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_STREAM, -1, true), true); - ASSERT_EQ(tdm_capture_set_done_handler(capture, _ut_tdm_capture_stream_done_cb, (void*)this), TDM_ERROR_NONE); + ASSERT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_stream_done_cb, (void*)this), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) ASSERT_EQ(tdm_capture_attach(capture, buffers[b]), TDM_ERROR_NONE); @@ -1057,7 +1057,7 @@ retry: ASSERT_EQ(tdm_capture_commit(capture), TDM_ERROR_NONE); while (!stream_exit) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); TDM_UT_ASK_YNR("* Successed to capture a output to a '%c%c%c%c' buffer as full size and show? (output: %d, layer: %d)", FOURCC_STR(formats[f]), pipe, dst_layer_index); diff --git a/utests/src/ut_tdm_backend_display.cpp b/haltests/src/tc_tdm_backend_display.cpp similarity index 83% rename from utests/src/ut_tdm_backend_display.cpp rename to haltests/src/tc_tdm_backend_display.cpp index a5dd08e..7fd8464 100644 --- a/utests/src/ut_tdm_backend_display.cpp +++ b/haltests/src/tc_tdm_backend_display.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -76,7 +76,7 @@ void TDMBackendBasic::SetUp(void) int old_layer_count = layer_count, count = TDM_UT_INVALID_VALUE; tdm_error ret; - if (ut_tdm_output_is_hwc_enable(outputs[o])) + if (tc_tdm_output_is_hwc_enable(outputs[o])) continue; ASSERT_EQ(tdm_output_get_layer_count(outputs[o], &count), TDM_ERROR_NONE); @@ -125,7 +125,7 @@ void TDMBackendBasic::DestroyBuffers(void) } char -ut_tdm_backend_getchar(void) +tc_tdm_backend_getchar(void) { int c = getchar(); int ch = c; @@ -255,7 +255,7 @@ TEST_P(TDMBackendBasic, VerifyOutputSetMode) const tdm_output_mode *best = NULL; int count = TDM_UT_INVALID_VALUE; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_available_modes(outputs[o], &modes, &count), TDM_ERROR_NONE); @@ -289,7 +289,7 @@ TEST_P(TDMBackendBasic, VerifyOutputSetDpms) tdm_output_dpms got_dpms = TDM_OUTPUT_DPMS_OFF; tdm_output_dpms set_dpms = TDM_OUTPUT_DPMS_ON; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_available_modes(outputs[o], &modes, &count), TDM_ERROR_NONE); @@ -321,18 +321,18 @@ TEST_P(TDMBackendBasic, VerifyPrimaryLayerShowOneFrame) for (int o = 0; o < output_count; o++) { tdm_layer *layer; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); retry: - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true); DestroyBuffers(); ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE); @@ -351,21 +351,21 @@ TEST_P(TDMBackendBasic, VerifyPrimaryLayerShowManyFrames) tdm_layer *layer; int next_buffer = 0; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); retry: - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layer, buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 3, true), true); /* set buffer & commit for TDM_UT_BACKEND_TEST_CNT times */ for (int t = 0; t < TDM_UT_BACKEND_TEST_CNT; t++) { - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[next_buffer]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[next_buffer]), true); ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE); usleep(40000); /* 40 ms */ next_buffer++; @@ -383,7 +383,7 @@ retry: } static void -_ut_tdm_backend_output_commit_cb(tdm_output *output, unsigned int sequence, +_tc_tdm_backend_output_commit_cb(tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { @@ -397,25 +397,25 @@ TEST_P(TDMBackendBasic, VerifyPrimaryLayerShowOneFrameWithCommitHandler) for (int o = 0; o < output_count; o++) { tdm_layer *layer; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); retry: - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true); DestroyBuffers(); bool done = false; - TDM_UT_ASSERT_TRUE(tdm_output_commit(outputs[o], 0, _ut_tdm_backend_output_commit_cb, &done) == TDM_ERROR_NONE, + TDM_UT_ASSERT_TRUE(tdm_output_commit(outputs[o], 0, _tc_tdm_backend_output_commit_cb, &done) == TDM_ERROR_NONE, "Check output_commit(), output_set_commit_handler()"); while (!done) - TDM_UT_ASSERT_TRUE(ut_tdm_display_handle_events(dpy) == TDM_ERROR_NONE, + TDM_UT_ASSERT_TRUE(tc_tdm_display_handle_events(dpy) == TDM_ERROR_NONE, "Check display_get_fd(), display_handle_events()"); TDM_UT_ASK_YNR("* Successed to display a frame to a primary layer? (output: %d)", o); @@ -430,17 +430,17 @@ TEST_P(TDMBackendBasic, VerifyOverlayLayersShowOneFrame) for (int o = 0; o < output_count; o++) { tdm_layer *layer; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layer, buffers, 1, false), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, false), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true); DestroyBuffers(); ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE); @@ -453,12 +453,12 @@ retry: if (tdm_layer_get_output(layers[l], &ret) != outputs[o]) continue; ASSERT_EQ(ret, TDM_ERROR_NONE); - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 1, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 1, true), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[0]), true); DestroyBuffers(); } @@ -477,17 +477,17 @@ TEST_P(TDMBackendBasic, VerifyOverlayLayersShowManyFrames) for (int o = 0; o < output_count; o++) { tdm_layer *layer; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layer, buffers, 1, false), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, false), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true); DestroyBuffers(); ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE); @@ -500,17 +500,17 @@ TEST_P(TDMBackendBasic, VerifyOverlayLayersShowManyFrames) if (tdm_layer_get_output(layers[l], &ret) != outputs[o]) continue; ASSERT_EQ(ret, TDM_ERROR_NONE); - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; retry: - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); /* set buffer & commit for TDM_UT_BACKEND_TEST_CNT times */ for (int t = 0; t < TDM_UT_BACKEND_TEST_CNT; t++) { - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer]), true); ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE); usleep(40000); /* 40 ms */ next_buffer++; @@ -534,7 +534,7 @@ TEST_P(TDMBackendBasic, DISABLED_VerifyCursorLayer) } static void -_ut_tdm_backend_output_done_cb(tdm_output *output, unsigned int sequence, +_tc_tdm_backend_output_done_cb(tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { @@ -548,17 +548,17 @@ TEST_P(TDMBackendBasic, VerifyOutputWaitVblank) for (int o = 0; o < output_count; o++) { tdm_layer *layer; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true); DestroyBuffers(); ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE); @@ -568,14 +568,14 @@ TEST_P(TDMBackendBasic, VerifyOutputWaitVblank) double start, end, interval; bool done; - interval = ut_tdm_output_get_vblank_interval_time(outputs[o]); + interval = tc_tdm_output_get_vblank_interval_time(outputs[o]); done = false; start = tdm_helper_get_time(); - TDM_UT_ASSERT_TRUE(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_backend_output_done_cb, &done) == TDM_ERROR_NONE, + TDM_UT_ASSERT_TRUE(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_backend_output_done_cb, &done) == TDM_ERROR_NONE, "Check output_wait_vblank(), output_set_vblank_handler()"); while (!done) - TDM_UT_ASSERT_TRUE(ut_tdm_display_handle_events(dpy) == TDM_ERROR_NONE, + TDM_UT_ASSERT_TRUE(tc_tdm_display_handle_events(dpy) == TDM_ERROR_NONE, "Check display_get_fd(), display_handle_events()"); end = tdm_helper_get_time(); @@ -598,17 +598,17 @@ TEST_P(TDMBackendBasic, VerifyOutputWaitVblankInterval) for (int o = 0; o < output_count; o++) { tdm_layer *layer; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true); DestroyBuffers(); ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE); @@ -618,13 +618,13 @@ TEST_P(TDMBackendBasic, VerifyOutputWaitVblankInterval) double start, end, interval; bool done; - interval = ut_tdm_output_get_vblank_interval_time(outputs[o]); + interval = tc_tdm_output_get_vblank_interval_time(outputs[o]); done = false; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_backend_output_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_backend_output_done_cb, &done), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -645,17 +645,17 @@ TEST_P(TDMBackendBasic, VerifyOutputWaitVblankFewTimesInOneVblank) for (int o = 0; o < output_count; o++) { tdm_layer *layer; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true); DestroyBuffers(); ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE); @@ -665,15 +665,15 @@ TEST_P(TDMBackendBasic, VerifyOutputWaitVblankFewTimesInOneVblank) double start, end, interval; bool done1, done2, done3; - interval = ut_tdm_output_get_vblank_interval_time(outputs[o]); + interval = tc_tdm_output_get_vblank_interval_time(outputs[o]); done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_backend_output_done_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_backend_output_done_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_backend_output_done_cb, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_backend_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_backend_output_done_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_backend_output_done_cb, &done3), TDM_ERROR_NONE); start = tdm_helper_get_time(); while (!done1 || !done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -694,7 +694,7 @@ TEST_P(TDMBackendBasic, VerifyPPObject) tdm_error ret; tdm_pp *pp; - if (!ut_tdm_display_has_pp_capability(dpy)) { + if (!tc_tdm_display_has_pp_capability(dpy)) { TDM_UT_INFO("PP not supported"); return; } @@ -710,7 +710,7 @@ TEST_P(TDMBackendBasic, VerifyPPCapabilities) { tdm_pp_capability capabilities = (tdm_pp_capability)0; - if (!ut_tdm_display_has_pp_capability(dpy)) { + if (!tc_tdm_display_has_pp_capability(dpy)) { TDM_UT_INFO("PP not supported"); return; } @@ -723,7 +723,7 @@ TEST_P(TDMBackendBasic, VerifyPPCapabilities) TEST_P(TDMBackendBasic, VerifyPPAvaiableSize) { - if (!ut_tdm_display_has_pp_capability(dpy)) { + if (!tc_tdm_display_has_pp_capability(dpy)) { TDM_UT_INFO("PP not supported"); return; } @@ -743,7 +743,7 @@ TEST_P(TDMBackendBasic, VerifyPPAvaiableSize) TEST_P(TDMBackendBasic, VerifyPPAvaiableFormats) { - if (!ut_tdm_display_has_pp_capability(dpy)) { + if (!tc_tdm_display_has_pp_capability(dpy)) { TDM_UT_INFO("PP not supported"); return; } @@ -758,7 +758,7 @@ TEST_P(TDMBackendBasic, VerifyPPAvaiableFormats) TEST_P(TDMBackendBasic, VerifyCaptureObject) { - if (!ut_tdm_display_has_capture_capability(dpy)) { + if (!tc_tdm_display_has_capture_capability(dpy)) { TDM_UT_INFO("Capture not supported."); return; } @@ -774,7 +774,7 @@ TEST_P(TDMBackendBasic, VerifyCaptureObject) continue; } - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; capture = tdm_output_create_capture(outputs[o], &ret); @@ -787,7 +787,7 @@ TEST_P(TDMBackendBasic, VerifyCaptureObject) TEST_P(TDMBackendBasic, VerifyCaptureAvaiableSize) { - if (!ut_tdm_display_has_capture_capability(dpy)) { + if (!tc_tdm_display_has_capture_capability(dpy)) { TDM_UT_INFO("Capture not supported."); return; } @@ -807,7 +807,7 @@ TEST_P(TDMBackendBasic, VerifyCaptureAvaiableSize) TEST_P(TDMBackendBasic, VerifyCaptureAvaiableFormats) { - if (!ut_tdm_display_has_capture_capability(dpy)) { + if (!tc_tdm_display_has_capture_capability(dpy)) { TDM_UT_INFO("Capture not supported."); return; } @@ -842,33 +842,33 @@ TEST_P(TDMBackendDisplay, VerifyPirmaryLayerFormat) const tdm_output_mode *mode = NULL; unsigned int flags = 0; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - layer = ut_tdm_output_get_primary_layer(outputs[o]); + layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); ASSERT_EQ(tdm_layer_get_buffer_flags(layer, &flags), TDM_ERROR_NONE); ASSERT_EQ(tdm_layer_get_available_formats(layer, &formats, &format_count), TDM_ERROR_NONE); for (int f = 0; f < format_count; f++) { - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); ASSERT_NE(mode, NULL); retry: TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f])); - ASSERT_EQ(ut_tdm_buffer_create(mode->hdisplay, mode->vdisplay, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); + ASSERT_EQ(tc_tdm_buffer_create(mode->hdisplay, mode->vdisplay, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); /* set buffer & commit for 60 times */ for (int t = 0; t < 60; t++) { tbm_surface_h displaying_buffer; - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[next_buffer]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[next_buffer]), true); done = false; - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_EQ(displaying_buffer, buffers[next_buffer]); @@ -886,7 +886,7 @@ retry: TEST_P(TDMBackendDisplay, VerifyOverlayLayerFormat) { - ASSERT_EQ(ut_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); + ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); for (int l = 0; l < layer_count; l++) { tdm_error ret; @@ -905,11 +905,11 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerFormat) output = tdm_layer_get_output(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - if (ut_tdm_layer_is_primary_layer(layer)) + if (tc_tdm_layer_is_primary_layer(layer)) continue; - if (ut_tdm_layer_is_cursor_layer(layer)) + if (tc_tdm_layer_is_cursor_layer(layer)) continue; ASSERT_EQ(tdm_output_get_pipe(output, &pipe), TDM_ERROR_NONE); @@ -927,16 +927,16 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerFormat) for (int f = 0; f < format_count; f++) { retry: TDM_UT_INFO("** testing for %c%c%c%c", FOURCC_STR(formats[f])); - ASSERT_EQ(ut_tdm_buffer_create(mode->hdisplay, mode->vdisplay, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); + ASSERT_EQ(tc_tdm_buffer_create(mode->hdisplay, mode->vdisplay, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); /* set buffer & commit for TDM_UT_BACKEND_TEST_CNT times */ for (int t = 0; t < TDM_UT_BACKEND_TEST_CNT; t++) { tbm_surface_h displaying_buffer; - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[next_buffer]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[next_buffer]), true); done = false; - ASSERT_EQ(tdm_output_commit(output, 0, _ut_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(output, 0, _tc_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_EQ(displaying_buffer, buffers[next_buffer]); @@ -956,7 +956,7 @@ retry: TEST_P(TDMBackendDisplay, VerifyOverlayLayerSize) { - ASSERT_EQ(ut_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); + ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); for (int l = 0; l < layer_count; l++) { tdm_error ret; @@ -975,11 +975,11 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerSize) output = tdm_layer_get_output(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - if (ut_tdm_layer_is_primary_layer(layer)) + if (tc_tdm_layer_is_primary_layer(layer)) continue; - if (ut_tdm_layer_is_cursor_layer(layer)) + if (tc_tdm_layer_is_cursor_layer(layer)) continue; ASSERT_EQ(tdm_output_get_pipe(output, &pipe), TDM_ERROR_NONE); @@ -1001,16 +1001,16 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerSize) int h = mode->vdisplay - diffh * (f + 1); retry: TDM_UT_INFO("** testing for %c%c%c%c", FOURCC_STR(formats[f])); - ASSERT_EQ(ut_tdm_buffer_create(w, h, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); + ASSERT_EQ(tc_tdm_buffer_create(w, h, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); /* set buffer & commit for TDM_UT_BACKEND_TEST_CNT times */ for (int t = 0; t < TDM_UT_BACKEND_TEST_CNT; t++) { tbm_surface_h displaying_buffer; - ASSERT_EQ(ut_tdm_layer_set_buffer(layer, buffers[next_buffer]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[next_buffer]), true); done = false; - ASSERT_EQ(tdm_output_commit(output, 0, _ut_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(output, 0, _tc_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_EQ(displaying_buffer, buffers[next_buffer]); @@ -1031,7 +1031,7 @@ retry: TEST_P(TDMBackendDisplay, VerifyOverlayLayerScale) { - ASSERT_EQ(ut_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); + ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); for (int l = 0; l < layer_count; l++) { tdm_error ret; @@ -1052,13 +1052,13 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerScale) ASSERT_EQ(tdm_output_get_pipe(output, &pipe), TDM_ERROR_NONE); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - if (ut_tdm_layer_is_primary_layer(layer)) + if (tc_tdm_layer_is_primary_layer(layer)) continue; - if (ut_tdm_layer_is_cursor_layer(layer)) + if (tc_tdm_layer_is_cursor_layer(layer)) continue; - if (!ut_tdm_layer_support_scale(layer)) { + if (!tc_tdm_layer_support_scale(layer)) { TDM_UT_INFO("no scale capability. (output: %d, layer: %d)", pipe, l); continue; } @@ -1074,7 +1074,7 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerScale) for (int f = 0; f < format_count; f++) { retry: TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f])); - ASSERT_EQ(ut_tdm_buffer_create(TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); + ASSERT_EQ(tc_tdm_buffer_create(TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); tdm_info_layer info; memset(&info, 0, sizeof info); @@ -1097,9 +1097,9 @@ retry: tbm_surface_h displaying_buffer; ASSERT_EQ(tdm_layer_set_buffer(layer, buffers[next_buffer]), TDM_ERROR_NONE); done = false; - ASSERT_EQ(tdm_output_commit(output, 0, _ut_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(output, 0, _tc_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_EQ(displaying_buffer, buffers[next_buffer]); @@ -1120,7 +1120,7 @@ retry: TEST_P(TDMBackendDisplay, VerifyOverlayLayerMovePosition) { - ASSERT_EQ(ut_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); + ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); for (int l = 0; l < layer_count; l++) { tdm_error ret; @@ -1139,11 +1139,11 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerMovePosition) output = tdm_layer_get_output(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - if (ut_tdm_layer_is_primary_layer(layer)) + if (tc_tdm_layer_is_primary_layer(layer)) continue; - if (ut_tdm_layer_is_cursor_layer(layer)) + if (tc_tdm_layer_is_cursor_layer(layer)) continue; ASSERT_EQ(tdm_output_get_pipe(output, &pipe), TDM_ERROR_NONE); @@ -1161,7 +1161,7 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerMovePosition) for (int f = 0; f < format_count; f++) { retry: TDM_UT_INFO("** testing for %c%c%c%c", FOURCC_STR(formats[f])); - ASSERT_EQ(ut_tdm_buffer_create(TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); + ASSERT_EQ(tc_tdm_buffer_create(TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); /* set buffer & commit for TDM_UT_BACKEND_TEST_CNT times */ for (int t = 0; t < TDM_UT_BACKEND_TEST_CNT; t++) { @@ -1185,9 +1185,9 @@ retry: ASSERT_EQ(tdm_layer_set_buffer(layer, buffers[next_buffer]), TDM_ERROR_NONE); done = false; - ASSERT_EQ(tdm_output_commit(output, 0, _ut_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(output, 0, _tc_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_EQ(displaying_buffer, buffers[next_buffer]); @@ -1208,7 +1208,7 @@ retry: TEST_P(TDMBackendDisplay, VerifyOverlayLayerCrop) { - ASSERT_EQ(ut_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); + ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true); for (int l = 0; l < layer_count; l++) { tdm_error ret; @@ -1229,13 +1229,13 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerCrop) ASSERT_EQ(tdm_output_get_pipe(output, &pipe), TDM_ERROR_NONE); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - if (ut_tdm_layer_is_primary_layer(layer)) + if (tc_tdm_layer_is_primary_layer(layer)) continue; - if (ut_tdm_layer_is_cursor_layer(layer)) + if (tc_tdm_layer_is_cursor_layer(layer)) continue; - if (ut_tdm_layer_support_no_crop(layer)) { + if (tc_tdm_layer_support_no_crop(layer)) { TDM_UT_INFO("no crop capability. (output: %d, layer: %d)", pipe, l); continue; } @@ -1253,7 +1253,7 @@ TEST_P(TDMBackendDisplay, VerifyOverlayLayerCrop) for (int f = 0; f < format_count; f++) { retry: TDM_UT_INFO("** testing for %c%c%c%c", FOURCC_STR(formats[f])); - ASSERT_EQ(ut_tdm_buffer_create(mode->hdisplay, mode->vdisplay, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); + ASSERT_EQ(tc_tdm_buffer_create(mode->hdisplay, mode->vdisplay, formats[f], flags | TBM_BO_SCANOUT, true, 3, buffers), true); tdm_info_layer info; memset(&info, 0, sizeof info); @@ -1276,9 +1276,9 @@ retry: tbm_surface_h displaying_buffer; ASSERT_EQ(tdm_layer_set_buffer(layer, buffers[next_buffer]), TDM_ERROR_NONE); done = false; - ASSERT_EQ(tdm_output_commit(output, 0, _ut_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(output, 0, _tc_tdm_backend_output_commit_cb, &done), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layer, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_EQ(displaying_buffer, buffers[next_buffer]); @@ -1300,10 +1300,10 @@ retry: /* should be debugged int emulator kernel */ TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsFromOnToOff) { - ASSERT_EQ(ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true), true); + ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true), true); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); @@ -1313,10 +1313,10 @@ TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsFromOnToOff) /* should be debugged int emulator kernel */ TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsFromOffToOn) { - ASSERT_EQ(ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true), true); + ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true), true); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); @@ -1328,10 +1328,10 @@ TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsFromOffToOn) TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsToOnBeforeSet) { for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); } } @@ -1340,10 +1340,10 @@ TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsToOnBeforeSet) TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsToOffBeforeSet) { for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_mode_setting(outputs[o]), true); + ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); } } @@ -1352,12 +1352,12 @@ TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsToOffBeforeSet) TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsToOffAfterUnsetWithoutCommit) { for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); - tdm_layer *layer = ut_tdm_output_get_primary_layer(outputs[o]); + tdm_layer *layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); ASSERT_EQ(tdm_layer_unset_buffer(layer), TDM_ERROR_NONE); @@ -1370,12 +1370,12 @@ TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsToOffAfterUnsetWithoutComm TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsToOffAfterUnsetWithCommit) { for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); - tdm_layer *layer = ut_tdm_output_get_primary_layer(outputs[o]); + tdm_layer *layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); ASSERT_EQ(tdm_layer_unset_buffer(layer), TDM_ERROR_NONE); @@ -1391,22 +1391,22 @@ TEST_P(TDMBackendDisplay, DISABLED_VerifyOutputSetDpmsAsync) TEST_P(TDMBackendDisplay, VerifyLayerGetInfo) { - ASSERT_EQ(ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true), true); + ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true), true); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; tbm_surface_h displaying_buffer; tdm_error ret; tdm_info_layer info, temp; - tdm_layer *layer = ut_tdm_output_get_primary_layer(outputs[o]); + tdm_layer *layer = tc_tdm_output_get_primary_layer(outputs[o]); ASSERT_NE(layer, NULL); displaying_buffer = tdm_layer_get_displaying_buffer(layer, &ret); ASSERT_NE(displaying_buffer, NULL); ASSERT_EQ(ret, TDM_ERROR_NONE); - ASSERT_EQ(ut_tdm_layer_fill_info(layer, displaying_buffer, NULL, &info), true); + ASSERT_EQ(tc_tdm_layer_fill_info(layer, displaying_buffer, NULL, &info), true); ASSERT_EQ(tdm_layer_get_info(layer, &temp), TDM_ERROR_NONE); ASSERT_EQ(memcmp(&info, &temp, sizeof info), 0); } diff --git a/utests/src/ut_tdm_backend_env.cpp b/haltests/src/tc_tdm_backend_env.cpp similarity index 98% rename from utests/src/ut_tdm_backend_env.cpp rename to haltests/src/tc_tdm_backend_env.cpp index 72a7f92..bb4b395 100644 --- a/utests/src/ut_tdm_backend_env.cpp +++ b/haltests/src/tc_tdm_backend_env.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ diff --git a/utests/src/ut_tdm_backend_pp.cpp b/haltests/src/tc_tdm_backend_pp.cpp similarity index 86% rename from utests/src/ut_tdm_backend_pp.cpp rename to haltests/src/tc_tdm_backend_pp.cpp index d7545ac..424b36c 100644 --- a/utests/src/ut_tdm_backend_pp.cpp +++ b/haltests/src/tc_tdm_backend_pp.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -102,7 +102,7 @@ void TDMBackendPP::SetUp(void) { TDMBackendDisplay::SetUp(); - if (!ut_tdm_display_has_pp_capability(dpy)) + if (!tc_tdm_display_has_pp_capability(dpy)) return; ASSERT_EQ(tdm_display_get_pp_capabilities(dpy, &capabilities), TDM_ERROR_NONE); @@ -118,12 +118,12 @@ void TDMBackendPP::SetUp(void) ASSERT_TRUE(preferred_align == -1 || preferred_align > 0); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; output = outputs[o]; ASSERT_EQ(tdm_output_get_pipe(output, &pipe), TDM_ERROR_NONE); - ASSERT_EQ(ut_tdm_output_prepare(dpy, output, false), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, output, false), true); ASSERT_EQ(tdm_output_get_mode(output, &mode), TDM_ERROR_NONE); ASSERT_NE(mode, NULL); break; @@ -174,9 +174,9 @@ bool TDMBackendPP::PrepareBuffers(int sw, int sh, tbm_format sf, int dw, int dh, dst_flags |= TBM_BO_SCANOUT; } - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_buffer_create(sw, sh, sf, src_flags, true, 3, srcbuf) == true); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_buffer_create(dw, dh, df, dst_flags, false, 3, dstbuf) == true); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_pp_fill_info(srcbuf[0], dstbuf[0], t, &info) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(sw, sh, sf, src_flags, true, 3, srcbuf) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(dw, dh, df, dst_flags, false, 3, dstbuf) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_pp_fill_info(srcbuf[0], dstbuf[0], t, &info) == true); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_pp_set_info(pp, &info) == TDM_ERROR_NONE); return true; @@ -187,7 +187,7 @@ bool TDMBackendPP::FindLayerUnderPrimary(void) tdm_error ret; int count; int primary_zpos, zpos; - tdm_layer *primary = ut_tdm_output_get_primary_layer(output); + tdm_layer *primary = tc_tdm_output_get_primary_layer(output); TDM_UT_RETURN_FALSE_IF_FAIL(primary != NULL); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(output, &count) == TDM_ERROR_NONE); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_zpos(primary, &primary_zpos) == TDM_ERROR_NONE); @@ -217,7 +217,7 @@ bool TDMBackendPP::FindLayerOverPrimary(void) tdm_error ret; int count; int primary_zpos, zpos; - tdm_layer *primary = ut_tdm_output_get_primary_layer(output); + tdm_layer *primary = tc_tdm_output_get_primary_layer(output); TDM_UT_RETURN_FALSE_IF_FAIL(primary != NULL); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(output, &count) == TDM_ERROR_NONE); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_zpos(primary, &primary_zpos) == TDM_ERROR_NONE); @@ -242,7 +242,7 @@ bool TDMBackendPP::FindLayerOverPrimary(void) } static void -_ut_tdm_backend_pp_output_commit_cb(tdm_output *output, unsigned int sequence, +_tc_tdm_backend_pp_output_commit_cb(tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { @@ -258,10 +258,10 @@ void TDMBackendPP::ShowBuffer(int b) bool done = false; - ASSERT_EQ(ut_tdm_layer_set_buffer(dst_layer, dstbuf[b]), true); - ASSERT_EQ(tdm_output_commit(output, 0, _ut_tdm_backend_pp_output_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_layer_set_buffer(dst_layer, dstbuf[b]), true); + ASSERT_EQ(tdm_output_commit(output, 0, _tc_tdm_backend_pp_output_commit_cb, &done), TDM_ERROR_NONE); while (!done) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } @@ -301,7 +301,7 @@ void TDMBackendPP::DestroyBuffers(void) } bool -ut_tdm_pp_fill_info(tbm_surface_h srcbuf, tbm_surface_h dstbuf, tdm_transform transform, tdm_info_pp *info) +tc_tdm_pp_fill_info(tbm_surface_h srcbuf, tbm_surface_h dstbuf, tdm_transform transform, tdm_info_pp *info) { int bw, bh; @@ -355,7 +355,7 @@ TEST_P(TDMBackendPP, PPDispalyGetAvaiableFormatsNullObject) { const tbm_format *formats = (const tbm_format *)TDM_UT_INVALID_VALUE; int count = TDM_UT_INVALID_VALUE; - if (ut_tdm_display_has_pp_capability(dpy)) + if (tc_tdm_display_has_pp_capability(dpy)) ASSERT_EQ(tdm_display_get_pp_available_formats(NULL, &formats, &count), TDM_ERROR_INVALID_PARAMETER); else ASSERT_EQ(tdm_display_get_pp_available_formats(NULL, &formats, &count), TDM_ERROR_INVALID_PARAMETER); @@ -365,7 +365,7 @@ TEST_P(TDMBackendPP, PPDispalyGetAvaiableFormatsNullObject) TEST_P(TDMBackendPP, PPDispalyGetAvaiableFormatsNullOther) { - if (ut_tdm_display_has_pp_capability(dpy)) { + if (tc_tdm_display_has_pp_capability(dpy)) { ASSERT_EQ(PreparePP(), true); ASSERT_EQ(tdm_display_get_pp_available_formats(pp, NULL, NULL), TDM_ERROR_INVALID_PARAMETER); } @@ -378,7 +378,7 @@ TEST_P(TDMBackendPP, PPDispalyGetAvaiableSizeNullObject) int max_w = TDM_UT_INVALID_VALUE; int max_h = TDM_UT_INVALID_VALUE; int preferred_align = TDM_UT_INVALID_VALUE; - if (ut_tdm_display_has_pp_capability(dpy)) + if (tc_tdm_display_has_pp_capability(dpy)) ASSERT_EQ(tdm_display_get_pp_available_size(NULL, &min_w, &min_h, &max_w, &max_h, &preferred_align), TDM_ERROR_INVALID_PARAMETER); else ASSERT_EQ(tdm_display_get_pp_available_size(NULL, &min_w, &min_h, &max_w, &max_h, &preferred_align), TDM_ERROR_INVALID_PARAMETER); @@ -391,7 +391,7 @@ TEST_P(TDMBackendPP, PPDispalyGetAvaiableSizeNullObject) TEST_P(TDMBackendPP, PPDispalyGetAvaiableSizeNullOther) { - if (ut_tdm_display_has_pp_capability(dpy)) { + if (tc_tdm_display_has_pp_capability(dpy)) { ASSERT_EQ(PreparePP(), true); ASSERT_EQ(tdm_display_get_pp_available_size(dpy, NULL, NULL, NULL, NULL, NULL), TDM_ERROR_NONE); } @@ -399,7 +399,7 @@ TEST_P(TDMBackendPP, PPDispalyGetAvaiableSizeNullOther) TEST_P(TDMBackendPP, PPDestroy) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); tdm_pp_destroy(pp); @@ -408,7 +408,7 @@ TEST_P(TDMBackendPP, PPDestroy) TEST_P(TDMBackendPP, PPDestroyNullObject) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); tdm_pp_destroy(NULL); } @@ -420,7 +420,7 @@ TEST_P(TDMBackendPP, PPSetInfo) TEST_P(TDMBackendPP, PPSetInfoNullObject) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); tdm_info_pp info; memset(&info, 0, sizeof info); @@ -429,14 +429,14 @@ TEST_P(TDMBackendPP, PPSetInfoNullObject) TEST_P(TDMBackendPP, PPSetInfoNullOther) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); ASSERT_EQ(tdm_pp_set_info(pp, NULL), TDM_ERROR_INVALID_PARAMETER); } static void -_ut_tdm_pp_done_cb(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst, void *user_data) +_tc_tdm_pp_done_cb(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst, void *user_data) { bool *done = (bool*)user_data; if (done) @@ -445,22 +445,22 @@ _ut_tdm_pp_done_cb(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst, void *user_ TEST_P(TDMBackendPP, PPSetDoneHandler) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb, NULL), TDM_ERROR_NONE); } TEST_P(TDMBackendPP, PPSetDoneHandlerNullObject) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); - ASSERT_EQ(tdm_pp_set_done_handler(NULL, _ut_tdm_pp_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_pp_set_done_handler(NULL, _tc_tdm_pp_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMBackendPP, PPSetDoneHandlerNullOther) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); ASSERT_EQ(tdm_pp_set_done_handler(pp, NULL, NULL), TDM_ERROR_INVALID_PARAMETER); @@ -468,7 +468,7 @@ TEST_P(TDMBackendPP, PPSetDoneHandlerNullOther) TEST_P(TDMBackendPP, PPAttach) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); @@ -486,7 +486,7 @@ TEST_P(TDMBackendPP, PPAttach) TEST_P(TDMBackendPP, PPAttachNullObject) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); tbm_surface_h srcbuf = (tbm_surface_h)TDM_UT_BUFFER_SIZE; tbm_surface_h dstbuf = (tbm_surface_h)TDM_UT_BUFFER_SIZE; @@ -496,7 +496,7 @@ TEST_P(TDMBackendPP, PPAttachNullObject) TEST_P(TDMBackendPP, PPAttachNullOther) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); @@ -505,7 +505,7 @@ TEST_P(TDMBackendPP, PPAttachNullOther) TEST_P(TDMBackendPP, PPCommit) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); @@ -514,14 +514,14 @@ TEST_P(TDMBackendPP, PPCommit) TEST_P(TDMBackendPP, PPCommitNullOBject) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(tdm_pp_commit(NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMBackendPP, PPConvertUnderlay) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); FindLayerUnderPrimary(); @@ -538,7 +538,7 @@ TEST_P(TDMBackendPP, PPConvertUnderlay) TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE / 2, dst_formats[f], TDM_TRANSFORM_NORMAL), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb, &done), TDM_ERROR_NONE); retry: for (int b = 0; b < 3; b++) { @@ -548,7 +548,7 @@ retry: ASSERT_EQ(tdm_pp_commit(pp), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); #if 0 char temp[256]; @@ -568,7 +568,7 @@ retry: TEST_P(TDMBackendPP, PPConvertOverlay) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); FindLayerOverPrimary(); @@ -585,7 +585,7 @@ TEST_P(TDMBackendPP, PPConvertOverlay) TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE / 2, dst_formats[f], TDM_TRANSFORM_NORMAL), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb, &done), TDM_ERROR_NONE); retry: for (int b = 0; b < 3; b++) { @@ -595,7 +595,7 @@ retry: ASSERT_EQ(tdm_pp_commit(pp), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); #if 0 char temp[256]; @@ -615,7 +615,7 @@ retry: TEST_P(TDMBackendPP, PPConvertScale) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); FindLayerUnderPrimary(); @@ -632,7 +632,7 @@ TEST_P(TDMBackendPP, PPConvertScale) mode->hdisplay, mode->vdisplay, dst_formats[f], TDM_TRANSFORM_NORMAL), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb, &done), TDM_ERROR_NONE); retry: for (int b = 0; b < 3; b++) { @@ -642,7 +642,7 @@ retry: ASSERT_EQ(tdm_pp_commit(pp), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); #if 0 char temp[256]; @@ -662,7 +662,7 @@ retry: TEST_P(TDMBackendPP, PPConvertTransform) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); FindLayerUnderPrimary(); @@ -680,7 +680,7 @@ TEST_P(TDMBackendPP, PPConvertTransform) TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE / 2, dst_formats[f], (tdm_transform)t), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb, &done), TDM_ERROR_NONE); retry: for (int b = 0; b < 3; b++) { @@ -690,7 +690,7 @@ retry: ASSERT_EQ(tdm_pp_commit(pp), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); #if 0 char temp[256]; @@ -711,7 +711,7 @@ retry: TEST_P(TDMBackendPP, PPConvertCSC) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); TDM_UT_SKIP_FLAG(!(capabilities & TDM_PP_CAPABILITY_NO_CSC)); FindLayerUnderPrimary(); @@ -731,7 +731,7 @@ TEST_P(TDMBackendPP, PPConvertCSC) TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE / 2, dst_formats[df], TDM_TRANSFORM_NORMAL), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb, &done), TDM_ERROR_NONE); retry: for (int b = 0; b < 3; b++) { @@ -741,7 +741,7 @@ retry: ASSERT_EQ(tdm_pp_commit(pp), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); #if 0 char temp[256]; @@ -763,7 +763,7 @@ retry: static void -_ut_tdm_pp_done_cb2(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst, void *user_data) +_tc_tdm_pp_done_cb2(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst, void *user_data) { int *done = (int*)user_data; if (done) @@ -773,7 +773,7 @@ _ut_tdm_pp_done_cb2(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst, void *user /* some backend doens't implement correctly for attaching */ TEST_P(TDMBackendPP, DISABLED_PPAttachFewTimesInOneCommit) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); @@ -786,14 +786,14 @@ TEST_P(TDMBackendPP, DISABLED_PPAttachFewTimesInOneCommit) TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], TDM_TRANSFORM_NORMAL), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb2, &done), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) ASSERT_EQ(tdm_pp_attach(pp, srcbuf[b], dstbuf[b]), TDM_ERROR_NONE); ASSERT_EQ(tdm_pp_commit(pp), TDM_ERROR_NONE); while (done != 3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) ShowBuffer(b); @@ -803,7 +803,7 @@ TEST_P(TDMBackendPP, DISABLED_PPAttachFewTimesInOneCommit) TEST_P(TDMBackendPP, PPDestroyWithoutCommit) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); @@ -813,7 +813,7 @@ TEST_P(TDMBackendPP, PPDestroyWithoutCommit) TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], TDM_TRANSFORM_NORMAL), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb2, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb2, NULL), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) ASSERT_EQ(tdm_pp_attach(pp, srcbuf[b], dstbuf[b]), TDM_ERROR_NONE); @@ -825,7 +825,7 @@ TEST_P(TDMBackendPP, PPDestroyWithoutCommit) TEST_P(TDMBackendPP, PPDestroyBeforeDone) { - TDM_UT_SKIP_FLAG(ut_tdm_display_has_pp_capability(dpy)); + TDM_UT_SKIP_FLAG(tc_tdm_display_has_pp_capability(dpy)); ASSERT_EQ(PreparePP(), true); @@ -835,7 +835,7 @@ TEST_P(TDMBackendPP, PPDestroyBeforeDone) TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f], TDM_TRANSFORM_NORMAL), true); - ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb2, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_pp_set_done_handler(pp, _tc_tdm_pp_done_cb2, NULL), TDM_ERROR_NONE); for (int b = 0; b < 3; b++) ASSERT_EQ(tdm_pp_attach(pp, srcbuf[b], dstbuf[b]), TDM_ERROR_NONE); diff --git a/utests/src/ut_tdm_buffer.cpp b/haltests/src/tc_tdm_buffer.cpp similarity index 79% rename from utests/src/ut_tdm_buffer.cpp rename to haltests/src/tc_tdm_buffer.cpp index ec03dba..c2383e4 100644 --- a/utests/src/ut_tdm_buffer.cpp +++ b/haltests/src/tc_tdm_buffer.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -64,7 +64,7 @@ void TDMBuffer::TearDown(void) } bool -ut_tdm_buffer_create(int width, int height, tbm_format format, int flags, bool fill, int count, tbm_surface_h *buffers) +tc_tdm_buffer_create(int width, int height, tbm_format format, int flags, bool fill, int count, tbm_surface_h *buffers) { TDM_UT_GOTO_IF_FAIL(width > 0, failed); TDM_UT_GOTO_IF_FAIL(height > 0, failed); @@ -112,7 +112,7 @@ TEST_P(TDMBuffer, BufferUnrefBackendNullOBject) } static void -_ut_tdm_buffer_destroy_cb(tbm_surface_h buffer, void *user_data) +_tc_tdm_buffer_destroy_cb(tbm_surface_h buffer, void *user_data) { bool *done = (bool*)user_data; if (done) @@ -122,7 +122,7 @@ _ut_tdm_buffer_destroy_cb(tbm_surface_h buffer, void *user_data) TEST_P(TDMBuffer, BufferAddDestroyHandler) { bool done = false; - ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _ut_tdm_buffer_destroy_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _tc_tdm_buffer_destroy_cb, &done), TDM_ERROR_NONE); tbm_surface_destroy(buffer); buffer = NULL; ASSERT_EQ(done, true); @@ -130,13 +130,13 @@ TEST_P(TDMBuffer, BufferAddDestroyHandler) TEST_P(TDMBuffer, BufferAddDestroyHandlerTwice) { - ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _ut_tdm_buffer_destroy_cb, NULL), TDM_ERROR_NONE); - ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _ut_tdm_buffer_destroy_cb, NULL), TDM_ERROR_BAD_REQUEST); + ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _tc_tdm_buffer_destroy_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _tc_tdm_buffer_destroy_cb, NULL), TDM_ERROR_BAD_REQUEST); } TEST_P(TDMBuffer, BufferAddDestroyHandlerNullObject) { - ASSERT_EQ(tdm_buffer_add_destroy_handler(NULL, _ut_tdm_buffer_destroy_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_buffer_add_destroy_handler(NULL, _tc_tdm_buffer_destroy_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMBuffer, BufferAddDestroyHandlerNullOther) @@ -147,8 +147,8 @@ TEST_P(TDMBuffer, BufferAddDestroyHandlerNullOther) TEST_P(TDMBuffer, BufferRemoveDestroyHandler) { bool done = false; - ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _ut_tdm_buffer_destroy_cb, &done), TDM_ERROR_NONE); - tdm_buffer_remove_destroy_handler(buffer, _ut_tdm_buffer_destroy_cb, &done); + ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _tc_tdm_buffer_destroy_cb, &done), TDM_ERROR_NONE); + tdm_buffer_remove_destroy_handler(buffer, _tc_tdm_buffer_destroy_cb, &done); tbm_surface_destroy(buffer); buffer = NULL; ASSERT_EQ(done, false); @@ -157,8 +157,8 @@ TEST_P(TDMBuffer, BufferRemoveDestroyHandler) TEST_P(TDMBuffer, BufferRemoveDestroyHandlerDifferentData) { bool done = false; - ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _ut_tdm_buffer_destroy_cb, &done), TDM_ERROR_NONE); - tdm_buffer_remove_destroy_handler(buffer, _ut_tdm_buffer_destroy_cb, NULL); + ASSERT_EQ(tdm_buffer_add_destroy_handler(buffer, _tc_tdm_buffer_destroy_cb, &done), TDM_ERROR_NONE); + tdm_buffer_remove_destroy_handler(buffer, _tc_tdm_buffer_destroy_cb, NULL); tbm_surface_destroy(buffer); buffer = NULL; ASSERT_EQ(done, true); @@ -166,7 +166,7 @@ TEST_P(TDMBuffer, BufferRemoveDestroyHandlerDifferentData) TEST_P(TDMBuffer, BufferRemoveDestroyHandlerNullObject) { - tdm_buffer_remove_destroy_handler(NULL, _ut_tdm_buffer_destroy_cb, NULL); + tdm_buffer_remove_destroy_handler(NULL, _tc_tdm_buffer_destroy_cb, NULL); } TEST_P(TDMBuffer, BufferRemoveDestroyHandlerNullOther) @@ -175,7 +175,7 @@ TEST_P(TDMBuffer, BufferRemoveDestroyHandlerNullOther) } static void -_ut_tdm_buffer_release_cb(tbm_surface_h buffer, void *user_data) +_tc_tdm_buffer_release_cb(tbm_surface_h buffer, void *user_data) { bool *done = (bool*)user_data; if (done) @@ -185,7 +185,7 @@ _ut_tdm_buffer_release_cb(tbm_surface_h buffer, void *user_data) TEST_P(TDMBuffer, BufferAddReleaseHandler) { bool done = false; - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb, &done), TDM_ERROR_NONE); tdm_buffer_ref_backend(buffer); ASSERT_EQ(done, false); tdm_buffer_unref_backend(buffer); @@ -194,14 +194,14 @@ TEST_P(TDMBuffer, BufferAddReleaseHandler) TEST_P(TDMBuffer, BufferAddReleaseHandlerTwice) { - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb, NULL), TDM_ERROR_NONE); - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb, NULL), TDM_ERROR_BAD_REQUEST); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb, NULL), TDM_ERROR_BAD_REQUEST); } TEST_P(TDMBuffer, BufferAddReleaseHandlerNullObject) { bool done = false; - ASSERT_EQ(tdm_buffer_add_release_handler(NULL, _ut_tdm_buffer_release_cb, &done), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_buffer_add_release_handler(NULL, _tc_tdm_buffer_release_cb, &done), TDM_ERROR_INVALID_PARAMETER); ASSERT_EQ(done, false); } @@ -213,10 +213,10 @@ TEST_P(TDMBuffer, BufferAddReleaseHandlerNullOther) TEST_P(TDMBuffer, BufferRemoveReleaseHandler) { bool done = false; - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb, &done), TDM_ERROR_NONE); tdm_buffer_ref_backend(buffer); ASSERT_EQ(done, false); - tdm_buffer_remove_release_handler(buffer, _ut_tdm_buffer_release_cb, &done); + tdm_buffer_remove_release_handler(buffer, _tc_tdm_buffer_release_cb, &done); tdm_buffer_unref_backend(buffer); ASSERT_EQ(done, false); } @@ -224,41 +224,41 @@ TEST_P(TDMBuffer, BufferRemoveReleaseHandler) TEST_P(TDMBuffer, BufferRemoveReleaseHandlerDifferentData) { bool done = false; - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb, &done), TDM_ERROR_NONE); tdm_buffer_ref_backend(buffer); ASSERT_EQ(done, false); - tdm_buffer_remove_release_handler(buffer, _ut_tdm_buffer_release_cb, NULL); + tdm_buffer_remove_release_handler(buffer, _tc_tdm_buffer_release_cb, NULL); tdm_buffer_unref_backend(buffer); ASSERT_EQ(done, true); } static void -_ut_tdm_buffer_release_cb2(tbm_surface_h buffer, void *user_data) +_tc_tdm_buffer_release_cb2(tbm_surface_h buffer, void *user_data) { bool *done = (bool*)user_data; if (done) *done = true; - tdm_buffer_remove_release_handler(buffer, _ut_tdm_buffer_release_cb2, user_data); + tdm_buffer_remove_release_handler(buffer, _tc_tdm_buffer_release_cb2, user_data); } TEST_P(TDMBuffer, BufferRemoveReleaseHandlerInHandler) { bool done = false; - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb2, &done), TDM_ERROR_NONE); tdm_buffer_ref_backend(buffer); ASSERT_EQ(done, false); tdm_buffer_unref_backend(buffer); ASSERT_EQ(done, true); done = false; - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb2, &done), TDM_ERROR_NONE); tdm_buffer_ref_backend(buffer); ASSERT_EQ(done, false); tdm_buffer_unref_backend(buffer); ASSERT_EQ(done, true); done = false; - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb2, &done), TDM_ERROR_NONE); tdm_buffer_ref_backend(buffer); ASSERT_EQ(done, false); tdm_buffer_unref_backend(buffer); @@ -268,10 +268,10 @@ TEST_P(TDMBuffer, BufferRemoveReleaseHandlerInHandler) TEST_P(TDMBuffer, BufferRemoveReleaseHandlerNullObject) { bool done = false; - ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _ut_tdm_buffer_release_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_buffer_add_release_handler(buffer, _tc_tdm_buffer_release_cb, &done), TDM_ERROR_NONE); tdm_buffer_ref_backend(buffer); ASSERT_EQ(done, false); - tdm_buffer_remove_release_handler(NULL, _ut_tdm_buffer_release_cb, &done); + tdm_buffer_remove_release_handler(NULL, _tc_tdm_buffer_release_cb, &done); tdm_buffer_unref_backend(buffer); ASSERT_EQ(done, true); } @@ -283,7 +283,7 @@ TEST_P(TDMBuffer, BufferRemoveReleaseHandlerNullOther) TEST_P(TDMBuffer, BufferRemoveReleaseHandlerNoAdd) { - tdm_buffer_remove_release_handler(buffer, _ut_tdm_buffer_release_cb, NULL); + tdm_buffer_remove_release_handler(buffer, _tc_tdm_buffer_release_cb, NULL); } #ifdef TDM_UT_TEST_WITH_PARAMS diff --git a/utests/src/ut_tdm_client.cpp b/haltests/src/tc_tdm_client.cpp similarity index 88% rename from utests/src/ut_tdm_client.cpp rename to haltests/src/tc_tdm_client.cpp index e72510a..10e122d 100644 --- a/utests/src/ut_tdm_client.cpp +++ b/haltests/src/tc_tdm_client.cpp @@ -35,7 +35,7 @@ #include #include -#include "ut_tdm.h" +#include "tc_tdm.h" #include "tdm_client.h" /* LCOV_EXCL_START */ @@ -50,9 +50,9 @@ enum { TDM_UT_PIPE_MSG_TERMINATE_SERVER, }; -static int _ut_tdm_pipe_read_msg(int fd); -static bool _ut_tdm_pipe_write_msg(int fd, int reply_fd, int msg); -static pid_t _ut_tdm_client_server_fork(int *pipe_to_parent, int *pipe_to_child); +static int _tc_tdm_pipe_read_msg(int fd); +static bool _tc_tdm_pipe_write_msg(int fd, int reply_fd, int msg); +static pid_t _tc_tdm_client_server_fork(int *pipe_to_parent, int *pipe_to_child); class TDMClient : public TDMEnv { @@ -96,7 +96,7 @@ void TDMClient::ServerFork(void) if (server_pid > 0) return; - server_pid = _ut_tdm_client_server_fork(pipe_parent, pipe_child); + server_pid = _tc_tdm_client_server_fork(pipe_parent, pipe_child); ASSERT_GT(server_pid, 0); } @@ -106,7 +106,7 @@ void TDMClient::ServerKill(void) close(pipe_child[0]); if (pipe_child[1] >= 0) { if (server_pid > 0) { - bool ret = _ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_TERMINATE_SERVER); + bool ret = _tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_TERMINATE_SERVER); if (ret) { if (waitpid(server_pid, NULL, 0) == server_pid) TDM_INFO("*** server terminated ***"); @@ -200,7 +200,7 @@ bool TDMClient::PrepareVblank(void) } static int -_ut_tdm_pipe_read_msg(int fd) +_tc_tdm_pipe_read_msg(int fd) { ssize_t len; int msg; @@ -216,13 +216,13 @@ _ut_tdm_pipe_read_msg(int fd) } static bool -_ut_tdm_pipe_write_msg(int fd, int reply_fd, int msg) +_tc_tdm_pipe_write_msg(int fd, int reply_fd, int msg) { ssize_t len = write(fd, &msg, sizeof msg); TDM_UT_RETURN_FALSE_IF_FAIL(len == sizeof msg); if (reply_fd >= 0) { - int reply = _ut_tdm_pipe_read_msg(reply_fd); + int reply = _tc_tdm_pipe_read_msg(reply_fd); TDM_UT_RETURN_FALSE_IF_FAIL(reply == TDM_UT_PIPE_MSG_REPLY); } @@ -230,7 +230,7 @@ _ut_tdm_pipe_write_msg(int fd, int reply_fd, int msg) } static bool -_ut_tdm_server_set_output_dpms(tdm_display *dpy, int msg) +_tc_tdm_server_set_output_dpms(tdm_display *dpy, int msg) { tdm_error ret; tdm_output *output; @@ -259,7 +259,7 @@ _ut_tdm_server_set_output_dpms(tdm_display *dpy, int msg) } static void -_ut_tdm_server_run(int *pipe_parent, int *pipe_child) +_tc_tdm_server_run(int *pipe_parent, int *pipe_child) { tdm_display *dpy = NULL; tdm_error ret; @@ -278,13 +278,13 @@ _ut_tdm_server_run(int *pipe_parent, int *pipe_child) TDM_UT_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, failed); TDM_UT_GOTO_IF_FAIL(output != NULL, failed); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - TDM_UT_GOTO_IF_FAIL(ut_tdm_output_prepare(dpy, output, true) == true, failed); + TDM_UT_GOTO_IF_FAIL(tc_tdm_output_prepare(dpy, output, true) == true, failed); } - TDM_UT_GOTO_IF_FAIL(_ut_tdm_pipe_write_msg(pipe_parent[1], -1, TDM_UT_PIPE_MSG_SERVER_READY) == true, done); + TDM_UT_GOTO_IF_FAIL(_tc_tdm_pipe_write_msg(pipe_parent[1], -1, TDM_UT_PIPE_MSG_SERVER_READY) == true, done); TDM_INFO("*** server ready ***"); @@ -314,16 +314,16 @@ _ut_tdm_server_run(int *pipe_parent, int *pipe_child) } if (fds[0].revents & POLLIN) - ret = ut_tdm_display_handle_events(dpy); + ret = tc_tdm_display_handle_events(dpy); if (fds[1].revents & POLLIN) { - int msg = _ut_tdm_pipe_read_msg(pipe_child[0]); - _ut_tdm_pipe_write_msg(pipe_parent[1], -1, TDM_UT_PIPE_MSG_REPLY); + int msg = _tc_tdm_pipe_read_msg(pipe_child[0]); + _tc_tdm_pipe_write_msg(pipe_parent[1], -1, TDM_UT_PIPE_MSG_REPLY); switch (msg) { case TDM_UT_PIPE_MSG_DPMS_ON: case TDM_UT_PIPE_MSG_DPMS_OFF: - _ut_tdm_server_set_output_dpms(dpy, msg); + _tc_tdm_server_set_output_dpms(dpy, msg); break; case TDM_UT_PIPE_MSG_TERMINATE_SERVER: goto done; @@ -339,7 +339,7 @@ done: return; failed: - TDM_UT_GOTO_IF_FAIL(_ut_tdm_pipe_write_msg(pipe_parent[1], -1, TDM_UT_PIPE_MSG_SERVER_FAILED) == true, done); + TDM_UT_GOTO_IF_FAIL(_tc_tdm_pipe_write_msg(pipe_parent[1], -1, TDM_UT_PIPE_MSG_SERVER_FAILED) == true, done); TDM_INFO("*** server failed ***"); if (dpy) @@ -348,7 +348,7 @@ failed: } -static void _ut_tdm_client_sig_handler(int sig) +static void _tc_tdm_client_sig_handler(int sig) { TDM_UT_ERR("got signal: %d", sig); kill(TDMClient::server_pid, 9); @@ -356,7 +356,7 @@ static void _ut_tdm_client_sig_handler(int sig) } static pid_t -_ut_tdm_client_server_fork(int *pipe_parent, int *pipe_child) +_tc_tdm_client_server_fork(int *pipe_parent, int *pipe_child) { pid_t pid; int msg; @@ -365,7 +365,7 @@ _ut_tdm_client_server_fork(int *pipe_parent, int *pipe_child) TDM_UT_GOTO_IF_FAIL(pipe(pipe_child) == 0, failed); signal(SIGCHLD, SIG_IGN); - signal(SIGSEGV, _ut_tdm_client_sig_handler); + signal(SIGSEGV, _tc_tdm_client_sig_handler); prctl(PR_SET_PDEATHSIG, SIGHUP); @@ -373,7 +373,7 @@ _ut_tdm_client_server_fork(int *pipe_parent, int *pipe_child) TDM_UT_GOTO_IF_FAIL(pid >= 0, failed); if (pid == 0) { - _ut_tdm_server_run(pipe_parent, pipe_child); + _tc_tdm_server_run(pipe_parent, pipe_child); close(pipe_child[0]); close(pipe_child[1]); close(pipe_parent[0]); @@ -386,7 +386,7 @@ _ut_tdm_client_server_fork(int *pipe_parent, int *pipe_child) exit(0); } - msg = _ut_tdm_pipe_read_msg(pipe_parent[0]); + msg = _tc_tdm_pipe_read_msg(pipe_parent[0]); TDM_UT_GOTO_IF_FAIL(msg == TDM_UT_PIPE_MSG_SERVER_READY, failed); TDM_INFO("*** server fork done ***"); @@ -455,7 +455,7 @@ TEST_P(TDMClient, ClientGetFdNullOther) } static void -_ut_tdm_client_vblank_cb(unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) +_tc_tdm_client_vblank_cb(unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { bool *done = (bool *)user_data; if (done) @@ -469,7 +469,7 @@ TEST_P(TDMClient, ClientHandleEvent) ASSERT_EQ(PrepareClient(), true); - ASSERT_EQ(tdm_client_wait_vblank(client, NULL, 1, 1, 0, _ut_tdm_client_vblank_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_wait_vblank(client, NULL, 1, 1, 0, _tc_tdm_client_vblank_cb, &done), TDM_ERROR_NONE); ASSERT_EQ(done, false); while (!done) @@ -488,7 +488,7 @@ TEST_P(TDMClient, ClientWaitVblank) ASSERT_EQ(PrepareClient(), true); - ASSERT_EQ(tdm_client_wait_vblank(client, NULL, 1, 1, 0, _ut_tdm_client_vblank_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_wait_vblank(client, NULL, 1, 1, 0, _tc_tdm_client_vblank_cb, &done), TDM_ERROR_NONE); ASSERT_EQ(done, false); while (!done) @@ -558,7 +558,7 @@ TEST_P(TDMClient, ClientGetOutputNullOther) } static void -_ut_tdm_client_output_change_dpms_cb(tdm_client_output *output, +_tc_tdm_client_output_change_dpms_cb(tdm_client_output *output, tdm_output_change_type type, tdm_value value, void *user_data) @@ -584,8 +584,8 @@ TEST_P(TDMClient, ClientOutputAddChangeHandler) ASSERT_EQ(PrepareClient(), true); ASSERT_EQ(PrepareOutput(), true); - ASSERT_EQ(tdm_client_output_add_change_handler(output, _ut_tdm_client_output_change_dpms_cb, &done), TDM_ERROR_NONE); - ASSERT_EQ(_ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_OFF), true); + ASSERT_EQ(tdm_client_output_add_change_handler(output, _tc_tdm_client_output_change_dpms_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(_tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_OFF), true); while (!done) ASSERT_EQ(tdm_client_handle_events_timeout(client, 3000), TDM_ERROR_NONE); @@ -593,7 +593,7 @@ TEST_P(TDMClient, ClientOutputAddChangeHandler) ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); ASSERT_EQ(dpms, TDM_OUTPUT_DPMS_OFF); - ASSERT_EQ(_ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_ON), true); + ASSERT_EQ(_tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_ON), true); while (dpms != TDM_OUTPUT_DPMS_ON) { ASSERT_EQ(tdm_client_handle_events_timeout(client, 3000), TDM_ERROR_NONE); ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); @@ -605,13 +605,13 @@ TEST_P(TDMClient, ClientOutputAddChangeHandlerTwice) ASSERT_EQ(PrepareClient(), true); ASSERT_EQ(PrepareOutput(), true); - ASSERT_EQ(tdm_client_output_add_change_handler(output, _ut_tdm_client_output_change_dpms_cb, NULL), TDM_ERROR_NONE); - ASSERT_EQ(tdm_client_output_add_change_handler(output, _ut_tdm_client_output_change_dpms_cb, NULL), TDM_ERROR_BAD_REQUEST); + ASSERT_EQ(tdm_client_output_add_change_handler(output, _tc_tdm_client_output_change_dpms_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_output_add_change_handler(output, _tc_tdm_client_output_change_dpms_cb, NULL), TDM_ERROR_BAD_REQUEST); } TEST_P(TDMClient, ClientOutputAddChangeHandlerNullObject) { - ASSERT_EQ(tdm_client_output_add_change_handler(NULL, _ut_tdm_client_output_change_dpms_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_client_output_add_change_handler(NULL, _tc_tdm_client_output_change_dpms_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMClient, ClientOutputAddChangeHandlerNullOther) @@ -628,8 +628,8 @@ TEST_P(TDMClient, ClientOutputRemoveChangeHandler) ASSERT_EQ(PrepareClient(), true); ASSERT_EQ(PrepareOutput(), true); - ASSERT_EQ(tdm_client_output_add_change_handler(output, _ut_tdm_client_output_change_dpms_cb, NULL), TDM_ERROR_NONE); - tdm_client_output_remove_change_handler(output, _ut_tdm_client_output_change_dpms_cb, NULL); + ASSERT_EQ(tdm_client_output_add_change_handler(output, _tc_tdm_client_output_change_dpms_cb, NULL), TDM_ERROR_NONE); + tdm_client_output_remove_change_handler(output, _tc_tdm_client_output_change_dpms_cb, NULL); } TEST_P(TDMClient, ClientOutputRemoveChangeHandlerDifferentData) @@ -639,19 +639,19 @@ TEST_P(TDMClient, ClientOutputRemoveChangeHandlerDifferentData) ASSERT_EQ(PrepareClient(), true); ASSERT_EQ(PrepareOutput(), true); - ASSERT_EQ(tdm_client_output_add_change_handler(output, _ut_tdm_client_output_change_dpms_cb, &done), TDM_ERROR_NONE); - tdm_client_output_remove_change_handler(output, _ut_tdm_client_output_change_dpms_cb, NULL); + ASSERT_EQ(tdm_client_output_add_change_handler(output, _tc_tdm_client_output_change_dpms_cb, &done), TDM_ERROR_NONE); + tdm_client_output_remove_change_handler(output, _tc_tdm_client_output_change_dpms_cb, NULL); } static void -_ut_tdm_client_output_change_dpms_cb2(tdm_client_output *output, +_tc_tdm_client_output_change_dpms_cb2(tdm_client_output *output, tdm_output_change_type type, tdm_value value, void *user_data) { switch (type) { case TDM_OUTPUT_CHANGE_DPMS: - tdm_client_output_remove_change_handler(output, _ut_tdm_client_output_change_dpms_cb2, user_data); + tdm_client_output_remove_change_handler(output, _tc_tdm_client_output_change_dpms_cb2, user_data); break; default: break; @@ -665,22 +665,22 @@ TEST_P(TDMClient, ClientOutputRemoveChangeHandlerInHandler) ASSERT_EQ(PrepareClient(), true); ASSERT_EQ(PrepareOutput(), true); - ASSERT_EQ(tdm_client_output_add_change_handler(output, _ut_tdm_client_output_change_dpms_cb2, NULL), TDM_ERROR_NONE); - ASSERT_EQ(_ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_OFF), true); + ASSERT_EQ(tdm_client_output_add_change_handler(output, _tc_tdm_client_output_change_dpms_cb2, NULL), TDM_ERROR_NONE); + ASSERT_EQ(_tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_OFF), true); ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); while (dpms != TDM_OUTPUT_DPMS_OFF) { ASSERT_EQ(tdm_client_handle_events_timeout(client, 3000), TDM_ERROR_NONE); ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); } - ASSERT_EQ(_ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_ON), true); + ASSERT_EQ(_tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_ON), true); while (dpms != TDM_OUTPUT_DPMS_ON) ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); } TEST_P(TDMClient, ClientOutputRemoveChangeHandlerNullObject) { - tdm_client_output_remove_change_handler(NULL, _ut_tdm_client_output_change_dpms_cb, NULL); + tdm_client_output_remove_change_handler(NULL, _tc_tdm_client_output_change_dpms_cb, NULL); } TEST_P(TDMClient, ClientOutputRemoveChangeHandlerNullOther) @@ -953,7 +953,7 @@ TEST_P(TDMClient, ClientVblankSetEnableFakeNullObject) } static void -_ut_tdm_client_vblank_cb2(tdm_client_vblank *vblank, +_tc_tdm_client_vblank_cb2(tdm_client_vblank *vblank, tdm_error error, unsigned int sequence, unsigned int tv_sec, @@ -975,7 +975,7 @@ TEST_P(TDMClient, ClientVblankWait) ASSERT_EQ(PrepareVblank(), true); done = false; - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); start = tdm_helper_get_time(); while (!done) @@ -995,9 +995,9 @@ TEST_P(TDMClient, ClientVblankWaitFewTime) ASSERT_EQ(PrepareVblank(), true); done1 = done2 = done3 = false; - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, &done3), TDM_ERROR_NONE); start = tdm_helper_get_time(); while (!done1 || !done2 || !done3) @@ -1015,7 +1015,7 @@ TEST_P(TDMClient, ClientVblankWaitInterval0) ASSERT_EQ(PrepareOutput(), true); ASSERT_EQ(PrepareVblank(), true); - ASSERT_EQ(tdm_client_vblank_wait(vblank, 0, _ut_tdm_client_vblank_cb2, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 0, _tc_tdm_client_vblank_cb2, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMClient, ClientVblankWaitInterval) @@ -1029,7 +1029,7 @@ TEST_P(TDMClient, ClientVblankWaitInterval) /* start from 1 */ for (int t = 1; t < 10; t++) { done = false; - ASSERT_EQ(tdm_client_vblank_wait(vblank, t, _ut_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, t, _tc_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); start = tdm_helper_get_time(); while (!done) @@ -1043,7 +1043,7 @@ TEST_P(TDMClient, ClientVblankWaitInterval) } static void -_ut_tdm_client_vblank_cb3(tdm_client_vblank *vblank, +_tc_tdm_client_vblank_cb3(tdm_client_vblank *vblank, tdm_error error, unsigned int sequence, unsigned int tv_sec, @@ -1064,12 +1064,12 @@ TEST_P(TDMClient, ClientVblankWaitSeq) for (int t = 0; t < 10; t++) { unsigned int cur_seq = 0, temp = 0; - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb3, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb3, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) ASSERT_EQ(tdm_client_handle_events_timeout(client, 3000), TDM_ERROR_NONE); start = tdm_helper_get_time(); - ASSERT_EQ(tdm_client_vblank_wait_seq(vblank, cur_seq + 1, _ut_tdm_client_vblank_cb3, &temp), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait_seq(vblank, cur_seq + 1, _tc_tdm_client_vblank_cb3, &temp), TDM_ERROR_NONE); while (temp == 0) ASSERT_EQ(tdm_client_handle_events_timeout(client, 3000), TDM_ERROR_NONE); end = tdm_helper_get_time(); @@ -1089,12 +1089,12 @@ TEST_P(TDMClient, ClientVblankWaitSeqInterval) for (int t = 1; t < 10; t++) { unsigned int cur_seq = 0, temp = 0; - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb3, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb3, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) ASSERT_EQ(tdm_client_handle_events_timeout(client, 3000), TDM_ERROR_NONE); start = tdm_helper_get_time(); - ASSERT_EQ(tdm_client_vblank_wait_seq(vblank, cur_seq + t, _ut_tdm_client_vblank_cb3, &temp), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait_seq(vblank, cur_seq + t, _tc_tdm_client_vblank_cb3, &temp), TDM_ERROR_NONE); while (temp == 0) ASSERT_EQ(tdm_client_handle_events_timeout(client, 3000), TDM_ERROR_NONE); end = tdm_helper_get_time(); @@ -1116,7 +1116,7 @@ TEST_P(TDMClient, ClientVblankWaitSetOffset) ASSERT_EQ(tdm_client_vblank_set_offset(vblank, 100), TDM_ERROR_NONE); done = false; - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); start = tdm_helper_get_time(); while (!done) @@ -1142,7 +1142,7 @@ TEST_P(TDMClient, ClientVblankWaitSetFps) interval = 1.0 / (double)fps; done = false; - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); start = tdm_helper_get_time(); while (!done) @@ -1183,12 +1183,12 @@ TEST_P(TDMVblank, VblankWaitEnableDisableGlobalFps) for (int v = 0; v < 3; v++) { cur_seq[v] = 0; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); } start = tdm_helper_get_time(); while (cur_seq[0] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); ASSERT_NE(cur_seq[1], 0); @@ -1203,16 +1203,16 @@ TEST_P(TDMVblank, VblankWaitEnableDisableGlobalFps) for (int v = 0; v < 3; v++) { cur_seq[v] = 0; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); } while (cur_seq[0] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); ASSERT_EQ(cur_seq[1], 0); ASSERT_EQ(cur_seq[2], 0); while (cur_seq[1] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); ASSERT_EQ(cur_seq[2], 0); } @@ -1240,12 +1240,12 @@ TEST_P(TDMVblank, VblankWaitIgnoreGlobalFps) for (int v = 0; v < 3; v++) { cur_seq[v] = 0; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); } start = tdm_helper_get_time(); while (cur_seq[1] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); ASSERT_EQ(cur_seq[0], 0); @@ -1255,7 +1255,7 @@ TEST_P(TDMVblank, VblankWaitIgnoreGlobalFps) ASSERT_LT((end - start), (interval + interval)); while (cur_seq[0] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); ASSERT_NE(cur_seq[2], 0); } @@ -1265,7 +1265,7 @@ TEST_P(TDMClient, ClientVblankWaitNullObject) { unsigned int cur_seq = 0; - ASSERT_EQ(tdm_client_vblank_wait(NULL, 1, _ut_tdm_client_vblank_cb3, &cur_seq), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_client_vblank_wait(NULL, 1, _tc_tdm_client_vblank_cb3, &cur_seq), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMClient, ClientVblankWaitNullOther) @@ -1285,14 +1285,14 @@ TEST_P(TDMClient, ClientVblankWaitDpmsOff) ASSERT_EQ(PrepareOutput(), true); ASSERT_EQ(PrepareVblank(), true); - ASSERT_EQ(_ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_OFF), true); + ASSERT_EQ(_tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_OFF), true); while (dpms != TDM_OUTPUT_DPMS_OFF) ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); ASSERT_EQ(dpms, TDM_OUTPUT_DPMS_OFF); - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, NULL), TDM_ERROR_DPMS_OFF); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, NULL), TDM_ERROR_DPMS_OFF); - ASSERT_EQ(_ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_ON), true); + ASSERT_EQ(_tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_ON), true); while (dpms != TDM_OUTPUT_DPMS_ON) ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); } @@ -1306,19 +1306,19 @@ TEST_P(TDMClient, ClientVblankWaitSetEnableFakeDpmsOff) ASSERT_EQ(PrepareOutput(), true); ASSERT_EQ(PrepareVblank(), true); - ASSERT_EQ(_ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_OFF), true); + ASSERT_EQ(_tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_OFF), true); while (dpms != TDM_OUTPUT_DPMS_OFF) ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); ASSERT_EQ(tdm_client_vblank_set_enable_fake(vblank, 1), TDM_ERROR_NONE); done = false; - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); while (!done) ASSERT_EQ(tdm_client_handle_events_timeout(client, 3000), TDM_ERROR_NONE); - ASSERT_EQ(_ut_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_ON), true); + ASSERT_EQ(_tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_DPMS_ON), true); while (dpms != TDM_OUTPUT_DPMS_ON) ASSERT_EQ(tdm_client_output_get_dpms(output, &dpms), TDM_ERROR_NONE); } @@ -1334,7 +1334,7 @@ TEST_P(TDMClient, ClientVblankIsWaiting) ASSERT_EQ(PrepareVblank(), true); done = false; - ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _ut_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_client_vblank_wait(vblank, 1, _tc_tdm_client_vblank_cb2, &done), TDM_ERROR_NONE); waiting = tdm_client_vblank_is_waiting(vblank); ASSERT_EQ(waiting, 1); diff --git a/utests/src/ut_tdm_display.cpp b/haltests/src/tc_tdm_display.cpp similarity index 98% rename from utests/src/ut_tdm_display.cpp rename to haltests/src/tc_tdm_display.cpp index 2476999..9ec8ff3 100644 --- a/utests/src/ut_tdm_display.cpp +++ b/haltests/src/tc_tdm_display.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -74,7 +74,7 @@ void TDMDisplay::TearDown(void) } tdm_error -ut_tdm_display_handle_events(tdm_display *dpy) +tc_tdm_display_handle_events(tdm_display *dpy) { struct pollfd fds; int fd = -1; @@ -101,7 +101,7 @@ ut_tdm_display_handle_events(tdm_display *dpy) } bool -ut_tdm_display_has_pp_capability(tdm_display *dpy) +tc_tdm_display_has_pp_capability(tdm_display *dpy) { tdm_display_capability capabilities = (tdm_display_capability)0; TDM_UT_RETURN_FALSE_IF_FAIL(tdm_display_get_capabilities(dpy, &capabilities) == TDM_ERROR_NONE); @@ -109,7 +109,7 @@ ut_tdm_display_has_pp_capability(tdm_display *dpy) } bool -ut_tdm_display_has_capture_capability(tdm_display *dpy) +tc_tdm_display_has_capture_capability(tdm_display *dpy) { tdm_display_capability capabilities = (tdm_display_capability)0; TDM_UT_RETURN_FALSE_IF_FAIL(tdm_display_get_capabilities(dpy, &capabilities) == TDM_ERROR_NONE); @@ -149,7 +149,7 @@ TEST_P(TDMDisplay, DisplayGetFDNullFD) TEST_P(TDMDisplay, DISABLED_DisplayHandleEvents) { /* TODO Generate events*/ - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } TEST_P(TDMDisplay, DisplayFlush) diff --git a/utests/src/ut_tdm_env.cpp b/haltests/src/tc_tdm_env.cpp similarity index 99% rename from utests/src/ut_tdm_env.cpp rename to haltests/src/tc_tdm_env.cpp index e773e39..398e627 100644 --- a/utests/src/ut_tdm_env.cpp +++ b/haltests/src/tc_tdm_env.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ diff --git a/utests/src/ut_tdm_event_loop.cpp b/haltests/src/tc_tdm_event_loop.cpp similarity index 88% rename from utests/src/ut_tdm_event_loop.cpp rename to haltests/src/tc_tdm_event_loop.cpp index d7f5b6a..d85b1d9 100644 --- a/utests/src/ut_tdm_event_loop.cpp +++ b/haltests/src/tc_tdm_event_loop.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -57,7 +57,7 @@ void TDMEventLoop::TearDown(void) } static tdm_error -_ut_tdm_event_loop_fd_cb(int fd, tdm_event_loop_mask mask, void *user_data) +_tc_tdm_event_loop_fd_cb(int fd, tdm_event_loop_mask mask, void *user_data) { bool *done = (bool*)user_data; if (done) @@ -77,7 +77,7 @@ TEST_P(TDMEventLoop, EventLoopAddFdHandler) done = false; source = tdm_event_loop_add_fd_handler(dpy, pipes[0], TDM_EVENT_LOOP_READABLE, - _ut_tdm_event_loop_fd_cb, &done, &ret); + _tc_tdm_event_loop_fd_cb, &done, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(source, NULL); @@ -86,7 +86,7 @@ TEST_P(TDMEventLoop, EventLoopAddFdHandler) //TODO // while (!done) -// ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); +// ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); tdm_event_loop_source_remove(source); @@ -99,7 +99,7 @@ TEST_P(TDMEventLoop, EventLoopAddFdHandlerNullObject) tdm_error ret; tdm_event_loop_source *source; source = tdm_event_loop_add_fd_handler(NULL, 0, TDM_EVENT_LOOP_READABLE, - _ut_tdm_event_loop_fd_cb, NULL, &ret); + _tc_tdm_event_loop_fd_cb, NULL, &ret); ASSERT_EQ(ret, TDM_ERROR_INVALID_PARAMETER); ASSERT_EQ(source, NULL); } @@ -125,7 +125,7 @@ TEST_P(TDMEventLoop, EventLoopSourceFdUpdate) done = false; source = tdm_event_loop_add_fd_handler(dpy, pipes[0], TDM_EVENT_LOOP_WRITABLE, - _ut_tdm_event_loop_fd_cb, &done, &ret); + _tc_tdm_event_loop_fd_cb, &done, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(source, NULL); @@ -136,7 +136,7 @@ TEST_P(TDMEventLoop, EventLoopSourceFdUpdate) //TODO // while (!done) -// ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); +// ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); tdm_event_loop_source_remove(source); @@ -150,7 +150,7 @@ TEST_P(TDMEventLoop, EventLoopSourceFdUpdateNullObject) } static tdm_error -_ut_tdm_event_loop_timer_cb(void *user_data) +_tc_tdm_event_loop_timer_cb(void *user_data) { bool *done = (bool*)user_data; if (done) @@ -162,7 +162,7 @@ TEST_P(TDMEventLoop, EventLoopAddTimerHandler) { tdm_error ret; tdm_event_loop_source *source; - source = tdm_event_loop_add_timer_handler(dpy, _ut_tdm_event_loop_timer_cb, NULL, &ret); + source = tdm_event_loop_add_timer_handler(dpy, _tc_tdm_event_loop_timer_cb, NULL, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(source, NULL); tdm_event_loop_source_remove(source); @@ -172,7 +172,7 @@ TEST_P(TDMEventLoop, EventLoopAddTimerHandlerNullObject) { tdm_error ret; tdm_event_loop_source *source; - source = tdm_event_loop_add_timer_handler(NULL, _ut_tdm_event_loop_timer_cb, NULL, &ret); + source = tdm_event_loop_add_timer_handler(NULL, _tc_tdm_event_loop_timer_cb, NULL, &ret); ASSERT_EQ(ret, TDM_ERROR_INVALID_PARAMETER); ASSERT_EQ(source, NULL); } @@ -191,13 +191,13 @@ TEST_P(TDMEventLoop, EventLoopSourceTimerUpdate) { tdm_error ret; tdm_event_loop_source *source; - source = tdm_event_loop_add_timer_handler(dpy, _ut_tdm_event_loop_timer_cb, NULL, &ret); + source = tdm_event_loop_add_timer_handler(dpy, _tc_tdm_event_loop_timer_cb, NULL, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(source, NULL); ASSERT_EQ(tdm_event_loop_source_timer_update(source, 100), TDM_ERROR_NONE); //TODO // while (!done) -// ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); +// ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); tdm_event_loop_source_remove(source); } diff --git a/utests/src/ut_tdm_helper.cpp b/haltests/src/tc_tdm_helper.cpp similarity index 96% rename from utests/src/ut_tdm_helper.cpp rename to haltests/src/tc_tdm_helper.cpp index 5aa34b1..4509cd0 100644 --- a/utests/src/ut_tdm_helper.cpp +++ b/haltests/src/tc_tdm_helper.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -396,7 +396,7 @@ TEST_P(TDMHelper, HelperDumpStart) } static void -_ut_tdm_helper_capture_cb(tbm_surface_h buffer, void *user_data) +_tc_tdm_helper_capture_cb(tbm_surface_h buffer, void *user_data) { } @@ -412,16 +412,16 @@ TEST_P(TDMHelper, HelperCaptureOutput) ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(output, NULL); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, output, true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, output, true), true); dump = tbm_surface_create(TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, TBM_FORMAT_ARGB8888); ASSERT_NE(dump, NULL); ASSERT_EQ(tdm_helper_capture_output(output, dump, 0, 0, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, - _ut_tdm_helper_capture_cb, NULL), TDM_ERROR_NONE); + _tc_tdm_helper_capture_cb, NULL), TDM_ERROR_NONE); tdm_helper_dump_buffer_str(dump, NULL, (char*)typeid(*this).name()); @@ -435,7 +435,7 @@ TEST_P(TDMHelper, HelperCaptureOutputNullObject) tbm_surface_h dump = (tbm_surface_h)TDM_UT_INVALID_VALUE; ASSERT_EQ(tdm_helper_capture_output(NULL, dump, 0, 0, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, - _ut_tdm_helper_capture_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + _tc_tdm_helper_capture_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMHelper, HelperCaptureOutputNullOther) @@ -451,7 +451,7 @@ TEST_P(TDMHelper, HelperCaptureOutputNullOther) tbm_surface_h dump = (tbm_surface_h)TDM_UT_INVALID_VALUE; ASSERT_EQ(tdm_helper_capture_output(NULL, dump, 0, 0, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, - _ut_tdm_helper_capture_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + _tc_tdm_helper_capture_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMHelper, HelperGetDisplayInformation) @@ -464,9 +464,9 @@ TEST_P(TDMHelper, HelperGetDisplayInformation) tdm_output *output = tdm_display_get_output(dpy, o, &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(output, NULL); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, output, true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, output, true), true); } tdm_helper_get_display_information(dpy, reply, &len); diff --git a/utests/src/ut_tdm_hwc_window.cpp b/haltests/src/tc_tdm_hwc_window.cpp similarity index 98% rename from utests/src/ut_tdm_hwc_window.cpp rename to haltests/src/tc_tdm_hwc_window.cpp index fb1b190..3af1f35 100644 --- a/utests/src/ut_tdm_hwc_window.cpp +++ b/haltests/src/tc_tdm_hwc_window.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -64,7 +64,7 @@ void TDMHwcWindow::SetUp(void) //create HWC_WIN_NUM hwc_windows for each outputs for (int o = 0; o < output_count; o++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { for (int w = 0; w < HWC_WIN_NUM; w++) { hw = tdm_hwc_create_window(outputs[w], &error); ASSERT_EQ(TDM_ERROR_NONE, error); @@ -96,7 +96,7 @@ TEST_P(TDMHwcWindow, DestroyWindowSuccessful) tdm_hwc_window *hw = NULL; for (int o = 0; o < output_count; o++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { hw = tdm_hwc_create_window(outputs[o], &error); ASSERT_EQ(TDM_ERROR_NONE, error); error = tdm_hwc_window_destroy(outputs[o], hw); diff --git a/utests/src/ut_tdm_layer.cpp b/haltests/src/tc_tdm_layer.cpp similarity index 77% rename from utests/src/ut_tdm_layer.cpp rename to haltests/src/tc_tdm_layer.cpp index d1eb318..db08461 100644 --- a/utests/src/ut_tdm_layer.cpp +++ b/haltests/src/tc_tdm_layer.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -73,7 +73,7 @@ void TDMLayer::SetUp(void) int old_layer_count = layer_count, count = TDM_UT_INVALID_VALUE; tdm_error ret; - if (ut_tdm_output_is_hwc_enable(outputs[o])) + if (tc_tdm_output_is_hwc_enable(outputs[o])) continue; ASSERT_EQ(tdm_output_get_layer_count(outputs[o], &count), TDM_ERROR_NONE); @@ -124,7 +124,7 @@ void TDMLayer::DestroyBuffers(void) } bool -ut_tdm_layer_is_cursor_layer(tdm_layer *layer) +tc_tdm_layer_is_cursor_layer(tdm_layer *layer) { tdm_layer_capability capabilities = (tdm_layer_capability)TDM_UT_INVALID_VALUE; if (tdm_layer_get_capabilities(layer, &capabilities) != TDM_ERROR_NONE) @@ -133,7 +133,7 @@ ut_tdm_layer_is_cursor_layer(tdm_layer *layer) } bool -ut_tdm_layer_is_primary_layer(tdm_layer *layer) +tc_tdm_layer_is_primary_layer(tdm_layer *layer) { tdm_layer_capability capabilities = (tdm_layer_capability)TDM_UT_INVALID_VALUE; if (tdm_layer_get_capabilities(layer, &capabilities) != TDM_ERROR_NONE) @@ -142,7 +142,7 @@ ut_tdm_layer_is_primary_layer(tdm_layer *layer) } bool -ut_tdm_layer_is_video_layer(tdm_layer *layer) +tc_tdm_layer_is_video_layer(tdm_layer *layer) { tdm_layer_capability capabilities = (tdm_layer_capability)TDM_UT_INVALID_VALUE; if (tdm_layer_get_capabilities(layer, &capabilities) != TDM_ERROR_NONE) @@ -151,7 +151,7 @@ ut_tdm_layer_is_video_layer(tdm_layer *layer) } bool -ut_tdm_layer_support_scale(tdm_layer *layer) +tc_tdm_layer_support_scale(tdm_layer *layer) { tdm_layer_capability capabilities = (tdm_layer_capability)TDM_UT_INVALID_VALUE; if (tdm_layer_get_capabilities(layer, &capabilities) != TDM_ERROR_NONE) @@ -160,7 +160,7 @@ ut_tdm_layer_support_scale(tdm_layer *layer) } bool -ut_tdm_layer_support_no_crop(tdm_layer *layer) +tc_tdm_layer_support_no_crop(tdm_layer *layer) { tdm_layer_capability capabilities = (tdm_layer_capability)TDM_UT_INVALID_VALUE; if (tdm_layer_get_capabilities(layer, &capabilities) != TDM_ERROR_NONE) @@ -169,7 +169,7 @@ ut_tdm_layer_support_no_crop(tdm_layer *layer) } unsigned int -ut_tdm_layer_get_output_pipe(tdm_layer *layer) +tc_tdm_layer_get_output_pipe(tdm_layer *layer) { unsigned int pipe = (unsigned int)TDM_UT_INVALID_VALUE; tdm_error ret; @@ -184,7 +184,7 @@ ut_tdm_layer_get_output_pipe(tdm_layer *layer) } tbm_format -ut_tdm_layer_find_best_format(tdm_layer *layer) +tc_tdm_layer_find_best_format(tdm_layer *layer) { const tbm_format *formats = (const tbm_format *)TDM_UT_INVALID_VALUE; int count = TDM_UT_INVALID_VALUE; @@ -209,7 +209,7 @@ ut_tdm_layer_find_best_format(tdm_layer *layer) } bool -ut_tdm_layer_prepare_buffer(tdm_layer *layer, tbm_surface_h *buffers, int buffer_count, bool fill) +tc_tdm_layer_prepare_buffer(tdm_layer *layer, tbm_surface_h *buffers, int buffer_count, bool fill) { tdm_error ret; unsigned int flags = 0; @@ -221,7 +221,7 @@ ut_tdm_layer_prepare_buffer(tdm_layer *layer, tbm_surface_h *buffers, int buffer /* create buffers */ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_buffer_flags(layer, &flags) == TDM_ERROR_NONE); - format = ut_tdm_layer_find_best_format(layer); + format = tc_tdm_layer_find_best_format(layer); TDM_UT_RETURN_FALSE_IF_FAIL(format != 0); output = tdm_layer_get_output(layer, &ret); @@ -231,7 +231,7 @@ ut_tdm_layer_prepare_buffer(tdm_layer *layer, tbm_surface_h *buffers, int buffer TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_mode(output, &mode) == TDM_ERROR_NONE); TDM_UT_RETURN_FALSE_IF_FAIL(mode != NULL); - if (ut_tdm_layer_is_primary_layer(layer)) { + if (tc_tdm_layer_is_primary_layer(layer)) { w = mode->hdisplay; h = mode->vdisplay; } else { @@ -239,7 +239,7 @@ ut_tdm_layer_prepare_buffer(tdm_layer *layer, tbm_surface_h *buffers, int buffer h = mode->vdisplay / 2; } - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_buffer_create(w, h, format, flags | TBM_BO_SCANOUT, fill, buffer_count, buffers) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(w, h, format, flags | TBM_BO_SCANOUT, fill, buffer_count, buffers) == true); TDM_INFO("preparing buffers done"); @@ -247,7 +247,7 @@ ut_tdm_layer_prepare_buffer(tdm_layer *layer, tbm_surface_h *buffers, int buffer } bool -ut_tdm_layer_prepare_buffer_queue(tdm_layer *layer, tbm_surface_queue_h *buffer_queue) +tc_tdm_layer_prepare_buffer_queue(tdm_layer *layer, tbm_surface_queue_h *buffer_queue) { tdm_error ret; unsigned int flags = 0; @@ -257,10 +257,10 @@ ut_tdm_layer_prepare_buffer_queue(tdm_layer *layer, tbm_surface_queue_h *buffer_ /* create buffers */ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_buffer_flags(layer, &flags) == TDM_ERROR_NONE); - format = ut_tdm_layer_find_best_format(layer); + format = tc_tdm_layer_find_best_format(layer); TDM_UT_RETURN_FALSE_IF_FAIL(format != (tbm_format)0); - if (ut_tdm_layer_is_primary_layer(layer)) { + if (tc_tdm_layer_is_primary_layer(layer)) { tdm_output *output; const tdm_output_mode *mode = NULL; output = tdm_layer_get_output(layer, &ret); @@ -286,7 +286,7 @@ ut_tdm_layer_prepare_buffer_queue(tdm_layer *layer, tbm_surface_queue_h *buffer_ } bool -ut_tdm_layer_fill_info(tdm_layer *layer, tbm_surface_h buffer, tbm_surface_queue_h buffer_queue, tdm_info_layer *info) +tc_tdm_layer_fill_info(tdm_layer *layer, tbm_surface_h buffer, tbm_surface_queue_h buffer_queue, tdm_info_layer *info) { tdm_error ret; tdm_output *output; @@ -324,7 +324,7 @@ ut_tdm_layer_fill_info(tdm_layer *layer, tbm_surface_h buffer, tbm_surface_queue bh = mode->vdisplay; w = mode->hdisplay; h = mode->vdisplay; - format = ut_tdm_layer_find_best_format(layer); + format = tc_tdm_layer_find_best_format(layer); } /* TODO: check min,max,prefered size and avaiable formats */ @@ -336,7 +336,7 @@ ut_tdm_layer_fill_info(tdm_layer *layer, tbm_surface_h buffer, tbm_surface_queue info->src_config.pos.w = w; info->src_config.pos.h = h; info->src_config.format = format; - if (ut_tdm_layer_is_primary_layer(layer)) { + if (tc_tdm_layer_is_primary_layer(layer)) { info->dst_pos.x = 0; info->dst_pos.y = 0; } else { @@ -354,14 +354,14 @@ ut_tdm_layer_fill_info(tdm_layer *layer, tbm_surface_h buffer, tbm_surface_queue return true; } -bool ut_tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer) +bool tc_tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer) { tdm_info_layer old_info, info; TDM_UT_RETURN_FALSE_IF_FAIL(buffer != NULL); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_info(layer, &old_info) == TDM_ERROR_NONE); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_layer_fill_info(layer, buffer, NULL, &info) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_layer_fill_info(layer, buffer, NULL, &info) == true); if (memcmp(&old_info, &info, sizeof info)) { TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_set_info(layer, &info) == TDM_ERROR_NONE); @@ -388,7 +388,7 @@ bool ut_tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer) return true; } -bool ut_tdm_layer_set_buffer_with_pos(tdm_layer *layer, tbm_surface_h buffer, tdm_pos *pos) +bool tc_tdm_layer_set_buffer_with_pos(tdm_layer *layer, tbm_surface_h buffer, tdm_pos *pos) { tdm_info_layer old_info, info; @@ -396,7 +396,7 @@ bool ut_tdm_layer_set_buffer_with_pos(tdm_layer *layer, tbm_surface_h buffer, td TDM_UT_RETURN_FALSE_IF_FAIL(pos != NULL); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_info(layer, &old_info) == TDM_ERROR_NONE); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_layer_fill_info(layer, buffer, NULL, &info) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_layer_fill_info(layer, buffer, NULL, &info) == true); info.dst_pos.x = pos->x; info.dst_pos.y = pos->y; @@ -428,14 +428,14 @@ bool ut_tdm_layer_set_buffer_with_pos(tdm_layer *layer, tbm_surface_h buffer, td return true; } -bool ut_tdm_layer_set_buffer_queue(tdm_layer *layer, tbm_surface_queue_h buffer_queue) +bool tc_tdm_layer_set_buffer_queue(tdm_layer *layer, tbm_surface_queue_h buffer_queue) { tdm_info_layer old_info, info; TDM_UT_RETURN_FALSE_IF_FAIL(buffer_queue != NULL); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_info(layer, &old_info) == TDM_ERROR_NONE); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_layer_fill_info(layer, NULL, buffer_queue, &info) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_layer_fill_info(layer, NULL, buffer_queue, &info) == true); if (memcmp(&old_info, &info, sizeof info)) TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_set_info(layer, &info) == TDM_ERROR_NONE); @@ -445,7 +445,7 @@ bool ut_tdm_layer_set_buffer_queue(tdm_layer *layer, tbm_surface_queue_h buffer_ return true; } -bool ut_tdm_layer_is_avaiable(tdm_layer *layer) +bool tc_tdm_layer_is_avaiable(tdm_layer *layer) { tdm_error ret; tdm_output *output = tdm_layer_get_output(layer, &ret); @@ -453,7 +453,7 @@ bool ut_tdm_layer_is_avaiable(tdm_layer *layer) TDM_UT_RETURN_FALSE_IF_FAIL(output != NULL); /* only check if connected */ - return ut_tdm_output_is_connected(output); + return tc_tdm_output_is_connected(output); } TEST_P(TDMLayer, LayerGetOutput) @@ -519,7 +519,7 @@ TEST_P(TDMLayer, LayerGetAvailableFormats) TDM_UT_SKIP_FLAG(has_layers); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; const tbm_format *formats = (const tbm_format *)TDM_UT_INVALID_VALUE; int count = TDM_UT_INVALID_VALUE; @@ -543,7 +543,7 @@ TEST_P(TDMLayer, LayerGetAvailableFormatsNullObject) TEST_P(TDMLayer, LayerGetAvailableFormatsNullOther) { TDM_UT_SKIP_FLAG(has_layers); - if (!ut_tdm_layer_is_avaiable(layers[0])) + if (!tc_tdm_layer_is_avaiable(layers[0])) return; ASSERT_EQ(tdm_layer_get_available_formats(layers[0], NULL, NULL), TDM_ERROR_INVALID_PARAMETER); } @@ -553,7 +553,7 @@ TEST_P(TDMLayer, LayerGetAvailableProperties) TDM_UT_SKIP_FLAG(has_layers); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; const tdm_prop *props = (const tdm_prop *)TDM_UT_INVALID_VALUE; int count = TDM_UT_INVALID_VALUE; @@ -590,13 +590,13 @@ TEST_P(TDMLayer, LayerGetZpos) ASSERT_NE(check_table, NULL); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; - unsigned int pipe = ut_tdm_layer_get_output_pipe(layers[l]); + unsigned int pipe = tc_tdm_layer_get_output_pipe(layers[l]); int zpos = TDM_UT_INVALID_VALUE; EXPECT_TRUE(tdm_layer_get_zpos(layers[l], &zpos) == TDM_ERROR_NONE); EXPECT_TRUE(zpos != TDM_UT_INVALID_VALUE); - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; EXPECT_TRUE(zpos >= 0); EXPECT_TRUE(pipe < (unsigned int)output_count); @@ -639,7 +639,7 @@ TEST_P(TDMLayer, LayerGetProperty) TDM_UT_SKIP_FLAG(has_layers); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; const tdm_prop *props = (const tdm_prop *)TDM_UT_INVALID_VALUE; @@ -678,14 +678,14 @@ TEST_P(TDMLayer, LayerSetInfo) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; tdm_info_layer info; - ASSERT_EQ(ut_tdm_layer_fill_info(layers[l], NULL, NULL, &info), true); + ASSERT_EQ(tc_tdm_layer_fill_info(layers[l], NULL, NULL, &info), true); ASSERT_EQ(tdm_layer_set_info(layers[l], &info), TDM_ERROR_NONE); } } @@ -731,7 +731,7 @@ TEST_P(TDMLayer, LayerGetBufferFlags) TDM_UT_SKIP_FLAG(has_layers); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; unsigned int flags = (unsigned int)TDM_UT_INVALID_VALUE; @@ -757,7 +757,7 @@ TEST_P(TDMLayer, LayerGetBufferFlagsNullOther) } static void -_ut_tdm_layer_commit_cb(tdm_layer *layer, unsigned int sequence, +_tc_tdm_layer_commit_cb(tdm_layer *layer, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { @@ -772,28 +772,28 @@ TEST_P(TDMLayer, LayerSetBuffer) tdm_error ret; - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; int next_buffer = 0; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); /* set buffer & commit for 100 times */ for (int t = 0; t < 10; t++) { tbm_surface_h displaying_buffer = NULL; - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer]), true); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer]), true); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); while (displaying_buffer != buffers[next_buffer]) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layers[l], &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); } @@ -812,31 +812,31 @@ TEST_P(TDMLayer, LayerSetBufferFewTimeInOneCommit) tdm_error ret; - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; int next_buffer = 0; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); /* set buffer & commit for 10 times */ for (int t = 0; t < 10; t++) { tbm_surface_h displaying_buffer = NULL; - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); if (next_buffer == 3) next_buffer = 0; - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer]), true); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer]), true); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); while (displaying_buffer != buffers[next_buffer]) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layers[l], &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); } @@ -868,10 +868,10 @@ TEST_P(TDMLayer, LayerUnsetBuffer) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; ASSERT_EQ(tdm_layer_unset_buffer(layers[l]), TDM_ERROR_NONE); @@ -889,29 +889,29 @@ TEST_P(TDMLayer, LayerUnsetBufferBeforeCommit) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; int next_buffer = 0; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); /* set buffer & commit for 10 times */ for (int t = 0; t < 10; t++) { - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); if (next_buffer == 3) next_buffer = 0; - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); if (next_buffer == 3) next_buffer = 0; } @@ -926,26 +926,26 @@ TEST_P(TDMLayer, LayerUnsetBufferAfterOneCommit) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; int next_buffer = 0; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); ASSERT_EQ(tdm_layer_unset_buffer(layers[l]), TDM_ERROR_NONE); @@ -958,28 +958,28 @@ TEST_P(TDMLayer, DISABLED_LayerUnsetBufferAfterTwoCommit) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; int next_buffer = 0; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); ASSERT_EQ(tdm_layer_unset_buffer(layers[l]), TDM_ERROR_NONE); @@ -992,30 +992,30 @@ TEST_P(TDMLayer, DISABLED_LayerUnsetBufferAfterTwoCommitOneSetBuffer) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; int next_buffer = 0; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer]), true); ASSERT_EQ(tdm_layer_unset_buffer(layers[l]), TDM_ERROR_NONE); @@ -1027,32 +1027,32 @@ TEST_P(TDMLayer, LayerUnsetBufferAfterOneCommitOneDone) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; int next_buffer = 0; bool done; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); /* set buffer & commit for 10 times */ - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); done = false; - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done), TDM_ERROR_NONE); while (!done) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } ASSERT_EQ(tdm_layer_unset_buffer(layers[l]), TDM_ERROR_NONE); @@ -1065,37 +1065,37 @@ TEST_P(TDMLayer, LayerUnsetBufferAfterOneCommitOneDoneOneCommit) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; int next_buffer = 0; bool done; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 3, true), true); /* set buffer & commit for 10 times */ - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); done = false; - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done), TDM_ERROR_NONE); while (!done) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[next_buffer++]), true); next_buffer = 0; - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done), TDM_ERROR_NONE); ASSERT_EQ(tdm_layer_unset_buffer(layers[l]), TDM_ERROR_NONE); @@ -1112,30 +1112,30 @@ TEST_P(TDMLayer, LayerCommitDPMSOff) ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(output, NULL); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) return; - EXPECT_TRUE(ut_tdm_output_prepare(dpy, output, true) == true); + EXPECT_TRUE(tc_tdm_output_prepare(dpy, output, true) == true); EXPECT_TRUE(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_OFF) == TDM_ERROR_NONE); EXPECT_TRUE(tdm_layer_commit(layers[0], NULL, NULL) == TDM_ERROR_DPMS_OFF); - EXPECT_TRUE(ut_tdm_output_unset(dpy, output) == true); + EXPECT_TRUE(tc_tdm_output_unset(dpy, output) == true); } TEST_P(TDMLayer, LayerCommitNullObject) { TDM_UT_SKIP_FLAG(has_layers); - ASSERT_EQ(tdm_layer_commit(NULL, _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_layer_commit(NULL, _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMLayer, LayerCommitNullOther) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); ASSERT_EQ(tdm_layer_commit(layers[0], NULL, NULL), TDM_ERROR_NONE); } @@ -1160,10 +1160,10 @@ TEST_P(TDMLayer, LayerRemoveCommitHandler) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; tdm_error ret; @@ -1171,25 +1171,25 @@ TEST_P(TDMLayer, LayerRemoveCommitHandler) ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(output, NULL); - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer(layers[l], buffers, 1, true), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer(layers[l], buffers, 1, true), true); - ASSERT_EQ(ut_tdm_layer_set_buffer(layers[l], buffers[0]), true); + ASSERT_EQ(tc_tdm_layer_set_buffer(layers[l], buffers[0]), true); for (int t = 0; t < 10; t++) { bool done1 = false, done2 = false, done3 = false; - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done3), TDM_ERROR_NONE); - ASSERT_EQ(tdm_layer_remove_commit_handler(layers[l], _ut_tdm_layer_commit_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_remove_commit_handler(layers[l], _tc_tdm_layer_commit_cb, &done2), TDM_ERROR_NONE); while (!done1 || done2 || !done3) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } @@ -1201,10 +1201,10 @@ TEST_P(TDMLayer, LayerRemoveCommitHandlerDifferentData) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; tdm_error ret; @@ -1212,44 +1212,44 @@ TEST_P(TDMLayer, LayerRemoveCommitHandlerDifferentData) ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(output, NULL); - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; for (int t = 0; t < 10; t++) { bool done1 = false, done2 = false, done3 = false; - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb, &done3), TDM_ERROR_NONE); - ASSERT_EQ(tdm_layer_remove_commit_handler(layers[l], _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_remove_commit_handler(layers[l], _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_NONE); while (!done1 || !done2 || !done3) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } } static void -_ut_tdm_layer_commit_cb2(tdm_layer *layer, unsigned int sequence, +_tc_tdm_layer_commit_cb2(tdm_layer *layer, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { bool *done = (bool*)user_data; if (done) *done = true; - ASSERT_EQ(tdm_layer_remove_commit_handler(layer, _ut_tdm_layer_commit_cb2, user_data), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_remove_commit_handler(layer, _tc_tdm_layer_commit_cb2, user_data), TDM_ERROR_NONE); } TEST_P(TDMLayer, LayerRemoveCommitHandlerInHandler) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; tdm_error ret; @@ -1257,20 +1257,20 @@ TEST_P(TDMLayer, LayerRemoveCommitHandlerInHandler) ASSERT_EQ(ret, TDM_ERROR_NONE); ASSERT_NE(output, NULL); - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; for (int t = 0; t < 10; t++) { bool done1 = false, done2 = false, done3 = false; - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb2, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb2, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_layer_commit(layers[l], _ut_tdm_layer_commit_cb2, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb2, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb2, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_layer_commit(layers[l], _tc_tdm_layer_commit_cb2, &done3), TDM_ERROR_NONE); while (!done1 || !done2 || !done3) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } @@ -1280,7 +1280,7 @@ TEST_P(TDMLayer, LayerRemoveCommitHandlerNullObject) { TDM_UT_SKIP_FLAG(has_layers); - ASSERT_EQ(tdm_layer_remove_commit_handler(NULL, _ut_tdm_layer_commit_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_layer_remove_commit_handler(NULL, _tc_tdm_layer_commit_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMLayer, LayerRemoveCommitHandlerNullOther) @@ -1325,26 +1325,26 @@ TEST_P(TDMLayer, LayerSetBufferQueue) tdm_error ret; - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; tbm_surface_h buffer; tbm_surface_h displaying_buffer; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - if (ut_tdm_layer_is_primary_layer(layers[l])) + if (tc_tdm_layer_is_primary_layer(layers[l])) continue; - ASSERT_EQ(ut_tdm_layer_prepare_buffer_queue(layers[l], &buffer_queue), true); + ASSERT_EQ(tc_tdm_layer_prepare_buffer_queue(layers[l], &buffer_queue), true); ASSERT_NE(buffer_queue, NULL); - ASSERT_EQ(ut_tdm_layer_set_buffer_queue(layers[l], buffer_queue), true); + ASSERT_EQ(tc_tdm_layer_set_buffer_queue(layers[l], buffer_queue), true); ASSERT_EQ(tdm_layer_commit(layers[l], NULL, NULL), TDM_ERROR_NONE); @@ -1356,7 +1356,7 @@ TEST_P(TDMLayer, LayerSetBufferQueue) displaying_buffer = NULL; while (displaying_buffer != buffer) { - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); displaying_buffer = tdm_layer_get_displaying_buffer(layers[l], &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); } @@ -1372,24 +1372,24 @@ TEST_P(TDMLayer, LayerSetBufferQueueTwice) { TDM_UT_SKIP_FLAG(has_layers); - ut_tdm_output_prepare_all_output(dpy, outputs, output_count, true); + tc_tdm_output_prepare_all_output(dpy, outputs, output_count, true); for (int l = 0; l < layer_count; l++) { tbm_surface_queue_h buffer_queue1 = NULL; tbm_surface_queue_h buffer_queue2 = NULL; - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; - if (ut_tdm_layer_is_cursor_layer(layers[l])) + if (tc_tdm_layer_is_cursor_layer(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; - EXPECT_TRUE(ut_tdm_layer_prepare_buffer_queue(layers[l], &buffer_queue1) == true); + EXPECT_TRUE(tc_tdm_layer_prepare_buffer_queue(layers[l], &buffer_queue1) == true); EXPECT_TRUE(buffer_queue1 != NULL); EXPECT_TRUE(tdm_layer_set_buffer_queue(layers[l], buffer_queue1) == TDM_ERROR_NONE); - EXPECT_TRUE(ut_tdm_layer_prepare_buffer_queue(layers[l], &buffer_queue2) == true); + EXPECT_TRUE(tc_tdm_layer_prepare_buffer_queue(layers[l], &buffer_queue2) == true); EXPECT_TRUE(buffer_queue2 != NULL); EXPECT_TRUE(tdm_layer_set_buffer_queue(layers[l], buffer_queue2) == TDM_ERROR_NONE); @@ -1435,10 +1435,10 @@ TEST_P(TDMLayer, LayerSetVideoPos) TDM_UT_SKIP_FLAG(has_layers); for (int l = 0; l < layer_count; ++l) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; - if (!ut_tdm_layer_is_video_layer(layers[l])) + if (!tc_tdm_layer_is_video_layer(layers[l])) continue; ASSERT_EQ(tdm_layer_set_video_pos(layers[l], -1), TDM_ERROR_NONE); } @@ -1456,10 +1456,10 @@ TEST_P(TDMLayer, LayerSetVideoPosNoVideoLayer) TDM_UT_SKIP_FLAG(has_layers); for (int l = 0; l < layer_count; ++l) { - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; - if (ut_tdm_layer_is_video_layer(layers[l])) + if (tc_tdm_layer_is_video_layer(layers[l])) continue; ASSERT_EQ(tdm_layer_set_video_pos(layers[l], -1), TDM_ERROR_BAD_REQUEST); @@ -1474,7 +1474,7 @@ TEST_P(TDMLayer, LayerCreateCapture) tdm_error ret; tdm_capture *capture; - if (!ut_tdm_layer_is_avaiable(layers[l])) + if (!tc_tdm_layer_is_avaiable(layers[l])) continue; capture = tdm_layer_create_capture(layers[l], &ret); diff --git a/utests/src/ut_tdm_log.cpp b/haltests/src/tc_tdm_log.cpp similarity index 72% rename from utests/src/ut_tdm_log.cpp rename to haltests/src/tc_tdm_log.cpp index e399742..e5d6026 100644 --- a/utests/src/ut_tdm_log.cpp +++ b/haltests/src/tc_tdm_log.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -38,10 +38,10 @@ TEST(TDMLog, logPrintf) tdm_log_enable_dlog(0); tdm_log_set_debug_level(2); tdm_log_set_path("/tmp/tdm.log"); - tdm_log_print(TDM_LOG_LEVEL_ERR, "utest\n"); - tdm_log_print(TDM_LOG_LEVEL_WRN, "utest\n"); - tdm_log_print(TDM_LOG_LEVEL_INFO, "utest\n"); - tdm_log_print(TDM_LOG_LEVEL_DBG, "utest\n"); + tdm_log_print(TDM_LOG_LEVEL_ERR, "haltest\n"); + tdm_log_print(TDM_LOG_LEVEL_WRN, "haltest\n"); + tdm_log_print(TDM_LOG_LEVEL_INFO, "haltest\n"); + tdm_log_print(TDM_LOG_LEVEL_DBG, "haltest\n"); tdm_log_set_path(NULL); } @@ -58,34 +58,34 @@ TEST(TDMLog, logDlogNone) tdm_log_enable_color(0); tdm_log_enable_dlog(1); tdm_log_set_debug_level(0); - tdm_log_print(TDM_LOG_LEVEL_ERR, "utest"); - tdm_log_print(TDM_LOG_LEVEL_WRN, "utest"); - tdm_log_print(TDM_LOG_LEVEL_INFO, "utest"); - tdm_log_print(TDM_LOG_LEVEL_DBG, "utest"); + tdm_log_print(TDM_LOG_LEVEL_ERR, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_WRN, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_INFO, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_DBG, "haltest"); } TEST(TDMLog, logDlog) { tdm_log_enable_dlog(1); - tdm_log_print(TDM_LOG_LEVEL_ERR, "utest"); - tdm_log_print(TDM_LOG_LEVEL_WRN, "utest"); - tdm_log_print(TDM_LOG_LEVEL_INFO, "utest"); - tdm_log_print(TDM_LOG_LEVEL_DBG, "utest"); + tdm_log_print(TDM_LOG_LEVEL_ERR, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_WRN, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_INFO, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_DBG, "haltest"); } TEST(TDMLog, logDlogNormal) { tdm_log_enable_dlog(1); - tdm_log_print(TDM_LOG_LEVEL_ERR, "utest"); - tdm_log_print(TDM_LOG_LEVEL_WRN, "utest"); - tdm_log_print(TDM_LOG_LEVEL_INFO, "utest"); - tdm_log_print(TDM_LOG_LEVEL_DBG, "utest"); + tdm_log_print(TDM_LOG_LEVEL_ERR, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_WRN, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_INFO, "haltest"); + tdm_log_print(TDM_LOG_LEVEL_DBG, "haltest"); } TEST(TDMLog, logDlogUnknownLevel) { tdm_log_enable_dlog(1); - tdm_log_print(TDM_UT_INVALID_VALUE, "utest"); + tdm_log_print(TDM_UT_INVALID_VALUE, "haltest"); } /* LCOV_EXCL_END */ \ No newline at end of file diff --git a/utests/src/ut_tdm_main.cpp b/haltests/src/tc_tdm_main.cpp similarity index 98% rename from utests/src/ut_tdm_main.cpp rename to haltests/src/tc_tdm_main.cpp index bc1b1bc..025a1b1 100644 --- a/utests/src/ut_tdm_main.cpp +++ b/haltests/src/tc_tdm_main.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ diff --git a/utests/src/ut_tdm_output.cpp b/haltests/src/tc_tdm_output.cpp similarity index 81% rename from utests/src/ut_tdm_output.cpp rename to haltests/src/tc_tdm_output.cpp index 2559517..15224f0 100644 --- a/utests/src/ut_tdm_output.cpp +++ b/haltests/src/tc_tdm_output.cpp @@ -28,12 +28,12 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ -static void _ut_tdm_output_change_cb(tdm_output *output, tdm_output_change_type type, tdm_value value, void *user_data); -static void _ut_tdm_output_change_cb2(tdm_output *output, tdm_output_change_type type, tdm_value value, void *user_data); +static void _tc_tdm_output_change_cb(tdm_output *output, tdm_output_change_type type, tdm_value value, void *user_data); +static void _tc_tdm_output_change_cb2(tdm_output *output, tdm_output_change_type type, tdm_value value, void *user_data); TDMOutput::TDMOutput() { @@ -72,11 +72,11 @@ void TDMOutput::TearDown(void) { if (outputs) { for (int o = 0; o < output_count; o++) { - ASSERT_EQ(ut_tdm_output_unset(dpy, outputs[o]), true); - tdm_output_remove_change_handler(outputs[o], _ut_tdm_output_change_cb, &done1); - tdm_output_remove_change_handler(outputs[o], _ut_tdm_output_change_cb, &done2); - tdm_output_remove_change_handler(outputs[o], _ut_tdm_output_change_cb, &done3); - tdm_output_remove_change_handler(outputs[o], _ut_tdm_output_change_cb, NULL); + ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[o]), true); + tdm_output_remove_change_handler(outputs[o], _tc_tdm_output_change_cb, &done1); + tdm_output_remove_change_handler(outputs[o], _tc_tdm_output_change_cb, &done2); + tdm_output_remove_change_handler(outputs[o], _tc_tdm_output_change_cb, &done3); + tdm_output_remove_change_handler(outputs[o], _tc_tdm_output_change_cb, NULL); } free(outputs); } @@ -85,7 +85,7 @@ void TDMOutput::TearDown(void) } bool -ut_tdm_output_mode_setting(tdm_output *output) +tc_tdm_output_mode_setting(tdm_output *output) { const tdm_output_mode *modes = (const tdm_output_mode *)TDM_UT_INVALID_VALUE; const tdm_output_mode *found = NULL; @@ -118,7 +118,7 @@ ut_tdm_output_mode_setting(tdm_output *output) } bool -ut_tdm_output_is_async_dpms_enable(tdm_output *output) +tc_tdm_output_is_async_dpms_enable(tdm_output *output) { tdm_output_capability capabilities = (tdm_output_capability)TDM_UT_INVALID_VALUE; if (tdm_output_get_capabilities(output, &capabilities) != TDM_ERROR_NONE) @@ -127,7 +127,7 @@ ut_tdm_output_is_async_dpms_enable(tdm_output *output) } bool -ut_tdm_output_is_hwc_enable(tdm_output *output) +tc_tdm_output_is_hwc_enable(tdm_output *output) { tdm_output_capability capabilities = (tdm_output_capability)TDM_UT_INVALID_VALUE; if (tdm_output_get_capabilities(output, &capabilities) != TDM_ERROR_NONE) @@ -136,7 +136,7 @@ ut_tdm_output_is_hwc_enable(tdm_output *output) } bool -ut_tdm_output_is_aod_enable(tdm_output *output) +tc_tdm_output_is_aod_enable(tdm_output *output) { tdm_output_capability capabilities = (tdm_output_capability)TDM_UT_INVALID_VALUE; if (tdm_output_get_capabilities(output, &capabilities) != TDM_ERROR_NONE) @@ -145,7 +145,7 @@ ut_tdm_output_is_aod_enable(tdm_output *output) } bool -ut_tdm_output_is_connected(tdm_output *output) +tc_tdm_output_is_connected(tdm_output *output) { tdm_output_conn_status status; if (tdm_output_get_conn_status(output, &status) != TDM_ERROR_NONE) @@ -154,7 +154,7 @@ ut_tdm_output_is_connected(tdm_output *output) } tdm_layer * -ut_tdm_output_get_primary_layer(tdm_output *output) +tc_tdm_output_get_primary_layer(tdm_output *output) { tdm_error ret; tdm_layer *layer; @@ -171,7 +171,7 @@ ut_tdm_output_get_primary_layer(tdm_output *output) } static void -_ut_tdm_output_done_cb(tdm_output *output, unsigned int sequence, +_tc_tdm_output_done_cb(tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { @@ -181,7 +181,7 @@ _ut_tdm_output_done_cb(tdm_output *output, unsigned int sequence, } bool -ut_tdm_output_prepare(tdm_display *dpy, tdm_output *output, bool fill) +tc_tdm_output_prepare(tdm_display *dpy, tdm_output *output, bool fill) { tbm_surface_h buffer = NULL; tdm_error ret; @@ -190,8 +190,8 @@ ut_tdm_output_prepare(tdm_display *dpy, tdm_output *output, bool fill) bool done = false; tdm_output_conn_status status; - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_output_is_connected(output) == true); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_output_mode_setting(output) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_output_is_connected(output) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_output_mode_setting(output) == true); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_ON) == TDM_ERROR_NONE); TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_primary_index(output, &primary_index) == TDM_ERROR_NONE); @@ -201,10 +201,10 @@ ut_tdm_output_prepare(tdm_display *dpy, tdm_output *output, bool fill) TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE); TDM_UT_RETURN_FALSE_IF_FAIL(layer != NULL); - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_layer_prepare_buffer(layer, &buffer, 1, fill) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_layer_prepare_buffer(layer, &buffer, 1, fill) == true); TDM_UT_RETURN_FALSE_IF_FAIL(buffer != NULL); - TDM_UT_GOTO_IF_FAIL(ut_tdm_layer_set_buffer(layer, buffer) == true, failed); + TDM_UT_GOTO_IF_FAIL(tc_tdm_layer_set_buffer(layer, buffer) == true, failed); if (tdm_helper_output_commit_per_vblank_enabled(output)) TDM_UT_GOTO_IF_FAIL(tdm_layer_commit(layer, NULL, NULL) == TDM_ERROR_NONE, failed); @@ -215,8 +215,8 @@ ut_tdm_output_prepare(tdm_display *dpy, tdm_output *output, bool fill) TDM_UT_GOTO_IF_FAIL(status == TDM_OUTPUT_CONN_STATUS_MODE_SETTED, failed); while (!done) { - TDM_UT_GOTO_IF_FAIL(tdm_output_wait_vblank(output, 1, 0, _ut_tdm_output_done_cb, &done) == TDM_ERROR_NONE, failed); - TDM_UT_GOTO_IF_FAIL(ut_tdm_display_handle_events(dpy) == TDM_ERROR_NONE, failed); + TDM_UT_GOTO_IF_FAIL(tdm_output_wait_vblank(output, 1, 0, _tc_tdm_output_done_cb, &done) == TDM_ERROR_NONE, failed); + TDM_UT_GOTO_IF_FAIL(tc_tdm_display_handle_events(dpy) == TDM_ERROR_NONE, failed); } tbm_surface_internal_unref(buffer); @@ -229,19 +229,19 @@ failed: } bool -ut_tdm_output_prepare_all_output(tdm_display *dpy, tdm_output **outputs, int output_count, bool fill) +tc_tdm_output_prepare_all_output(tdm_display *dpy, tdm_output **outputs, int output_count, bool fill) { for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - if (!ut_tdm_output_prepare(dpy, outputs[o], fill)) + if (!tc_tdm_output_prepare(dpy, outputs[o], fill)) return false; } return true; } bool -ut_tdm_output_unset(tdm_display *dpy, tdm_output *output) +tc_tdm_output_unset(tdm_display *dpy, tdm_output *output) { tdm_error ret; int count = 0; @@ -255,9 +255,9 @@ ut_tdm_output_unset(tdm_display *dpy, tdm_output *output) TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE); TDM_UT_RETURN_FALSE_IF_FAIL(layer != NULL); - if (ut_tdm_layer_is_cursor_layer(layer)) + if (tc_tdm_layer_is_cursor_layer(layer)) continue; - if (ut_tdm_layer_is_video_layer(layer)) + if (tc_tdm_layer_is_video_layer(layer)) continue; TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_unset_buffer(layer) == TDM_ERROR_NONE); @@ -272,7 +272,7 @@ ut_tdm_output_unset(tdm_display *dpy, tdm_output *output) /* msec */ double -ut_tdm_output_get_vblank_interval_time(tdm_output *output) +tc_tdm_output_get_vblank_interval_time(tdm_output *output) { const tdm_output_mode *mode = (const tdm_output_mode *)TDM_UT_INVALID_VALUE; tdm_error ret = tdm_output_get_mode(output, &mode); @@ -435,7 +435,7 @@ TEST_P(TDMOutput, OutputGetLayerCount) for (int o = 0; o < output_count; o++) { int count = TDM_UT_INVALID_VALUE; - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { ASSERT_EQ(tdm_output_get_layer_count(outputs[o], &count), TDM_ERROR_BAD_REQUEST); ASSERT_EQ(count, 0); } else { @@ -470,7 +470,7 @@ TEST_P(TDMOutput, OutputGetLayer) tdm_layer *layer; int layer_count = TDM_UT_INVALID_VALUE; - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { ASSERT_EQ(tdm_output_get_layer_count(outputs[o], &layer_count), TDM_ERROR_BAD_REQUEST); ASSERT_EQ(layer_count, 0); @@ -505,7 +505,7 @@ TEST_P(TDMOutput, OutputGetLayerNullOther) TDM_UT_SKIP_FLAG(has_outputs); tdm_layer *layer; - if (ut_tdm_output_is_hwc_enable(outputs[0])) { + if (tc_tdm_output_is_hwc_enable(outputs[0])) { layer = tdm_output_get_layer(outputs[0], 0, NULL); ASSERT_EQ(layer, NULL); } else { @@ -551,7 +551,7 @@ TEST_P(TDMOutput, OutputGetAvailableModes) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; int count = TDM_UT_INVALID_VALUE; @@ -585,7 +585,7 @@ TEST_P(TDMOutput, OutputGetAvailableSize) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; int min_w = TDM_UT_INVALID_VALUE, min_h = TDM_UT_INVALID_VALUE; @@ -864,7 +864,7 @@ TEST_P(TDMOutput, OutputGetPropertyNullOther) } static void -_ut_tdm_output_change_cb(tdm_output *output, tdm_output_change_type type, tdm_value value, void *user_data) +_tc_tdm_output_change_cb(tdm_output *output, tdm_output_change_type type, tdm_value value, void *user_data) { bool *done = (bool *)user_data; if (done) @@ -876,15 +876,15 @@ TEST_P(TDMOutput, OutputAddChangeHandler) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); done1 = false; - ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _ut_tdm_output_change_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _tc_tdm_output_change_cb, &done1), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); ASSERT_EQ(done1, true); } @@ -894,15 +894,15 @@ TEST_P(TDMOutput, OutputAddChangeHandlerTwice) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_output_add_change_handler(outputs[0], _ut_tdm_output_change_cb, NULL), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_add_change_handler(outputs[0], _ut_tdm_output_change_cb, NULL), TDM_ERROR_BAD_REQUEST); + ASSERT_EQ(tdm_output_add_change_handler(outputs[0], _tc_tdm_output_change_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_add_change_handler(outputs[0], _tc_tdm_output_change_cb, NULL), TDM_ERROR_BAD_REQUEST); } TEST_P(TDMOutput, OutputAddChangeHandlerNullObject) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_output_add_change_handler(NULL, _ut_tdm_output_change_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_output_add_change_handler(NULL, _tc_tdm_output_change_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMOutput, OutputAddChangeHandlerNullOther) @@ -918,8 +918,8 @@ TEST_P(TDMOutput, OutputRemoveChangeHandler) for (int o = 0; o < output_count; o++) { for (int t = 0; t < 10; t++) { - ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _ut_tdm_output_change_cb, NULL), TDM_ERROR_NONE); - tdm_output_remove_change_handler(outputs[o], _ut_tdm_output_change_cb, NULL); + ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _tc_tdm_output_change_cb, NULL), TDM_ERROR_NONE); + tdm_output_remove_change_handler(outputs[o], _tc_tdm_output_change_cb, NULL); } } } @@ -929,14 +929,14 @@ TEST_P(TDMOutput, OutputRemoveChangeHandlerDifferentData) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); done1 = false; - ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _ut_tdm_output_change_cb, &done1), TDM_ERROR_NONE); - tdm_output_remove_change_handler(outputs[o], _ut_tdm_output_change_cb, NULL); + ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _tc_tdm_output_change_cb, &done1), TDM_ERROR_NONE); + tdm_output_remove_change_handler(outputs[o], _tc_tdm_output_change_cb, NULL); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); ASSERT_EQ(done1, true); @@ -944,12 +944,12 @@ TEST_P(TDMOutput, OutputRemoveChangeHandlerDifferentData) } static void -_ut_tdm_output_change_cb2(tdm_output *output, tdm_output_change_type type, tdm_value value, void *user_data) +_tc_tdm_output_change_cb2(tdm_output *output, tdm_output_change_type type, tdm_value value, void *user_data) { bool *done = (bool*)user_data; if (done) *done = true; - tdm_output_remove_change_handler(output, _ut_tdm_output_change_cb2, user_data); + tdm_output_remove_change_handler(output, _tc_tdm_output_change_cb2, user_data); } TEST_P(TDMOutput, OutputRemoveChangeHandlerInHandler) @@ -957,23 +957,23 @@ TEST_P(TDMOutput, OutputRemoveChangeHandlerInHandler) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); done1 = false; - ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _ut_tdm_output_change_cb2, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _tc_tdm_output_change_cb2, &done1), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); ASSERT_EQ(done1, true); done2 = false; - ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _ut_tdm_output_change_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _tc_tdm_output_change_cb, &done2), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); ASSERT_EQ(done2, true); done3 = false; - ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _ut_tdm_output_change_cb2, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _tc_tdm_output_change_cb2, &done3), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); ASSERT_EQ(done3, true); } @@ -983,7 +983,7 @@ TEST_P(TDMOutput, OutputRemoveChangeHandlerNullObject) { TDM_UT_SKIP_FLAG(has_outputs); - tdm_output_remove_change_handler(NULL, _ut_tdm_output_change_cb, NULL); + tdm_output_remove_change_handler(NULL, _tc_tdm_output_change_cb, NULL); } TEST_P(TDMOutput, OutputRemoveChangeHandlerNullOther) @@ -1000,7 +1000,7 @@ TEST_P(TDMOutput, OutputSetMode) for (int o = 0; o < output_count; o++) { const tdm_output_mode *modes; int count; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_available_modes(outputs[o], &modes, &count), TDM_ERROR_NONE); @@ -1025,7 +1025,7 @@ TEST_P(TDMOutput, OutputSetModeNullOther) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_set_mode(outputs[o], NULL), TDM_ERROR_INVALID_PARAMETER); @@ -1040,7 +1040,7 @@ TEST_P(TDMOutput, OutputGetMode) const tdm_output_mode *modes; int count; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_get_available_modes(outputs[o], &modes, &count), TDM_ERROR_NONE); @@ -1088,14 +1088,14 @@ TEST_P(TDMOutput, OutputSetDpms) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_STANDBY), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_SUSPEND), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); - if (ut_tdm_output_is_aod_enable(outputs[o])) { + if (tc_tdm_output_is_aod_enable(outputs[o])) { ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_AOD), TDM_ERROR_NONE); } else { ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_AOD), TDM_ERROR_BAD_REQUEST); @@ -1123,18 +1123,18 @@ TEST_P(TDMOutput, OutputSetDpmsAsync) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - if (!ut_tdm_output_is_async_dpms_enable(outputs[o])) + if (!tc_tdm_output_is_async_dpms_enable(outputs[o])) continue; done1 = false; ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _ut_tdm_output_change_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_add_change_handler(outputs[o], _tc_tdm_output_change_cb, &done1), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms_async(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); while (!done1) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); - tdm_output_remove_change_handler(outputs[o], _ut_tdm_output_change_cb, &done1); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + tdm_output_remove_change_handler(outputs[o], _tc_tdm_output_change_cb, &done1); } } @@ -1145,7 +1145,7 @@ TEST_P(TDMOutput, OutputGetDpms) for (int o = 0; o < output_count; o++) { tdm_output_dpms dpms_value; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); @@ -1164,7 +1164,7 @@ TEST_P(TDMOutput, OutputGetDpms) ASSERT_EQ(tdm_output_get_dpms(outputs[o], &dpms_value), TDM_ERROR_NONE); ASSERT_EQ(dpms_value, TDM_OUTPUT_DPMS_ON); - if (ut_tdm_output_is_aod_enable(outputs[o])) { + if (tc_tdm_output_is_aod_enable(outputs[o])) { ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_AOD), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_get_dpms(outputs[o], &dpms_value), TDM_ERROR_NONE); ASSERT_EQ(dpms_value, TDM_OUTPUT_DPMS_AOD); @@ -1195,21 +1195,21 @@ TEST_P(TDMOutput, OutputWaitVblank) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); for (int t = 0; t < 10; t++) { double start, end, interval; - interval = ut_tdm_output_get_vblank_interval_time(outputs[o]); + interval = tc_tdm_output_get_vblank_interval_time(outputs[o]); done1 = false; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], 1, 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], 1, 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); while (!done1) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -1222,7 +1222,7 @@ TEST_P(TDMOutput, OutputWaitVblankNullObject) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_output_wait_vblank(NULL, 1, 0, _ut_tdm_output_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_output_wait_vblank(NULL, 1, 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMOutput, OutputWaitVblankNullOther) @@ -1230,10 +1230,10 @@ TEST_P(TDMOutput, OutputWaitVblankNullOther) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); ASSERT_EQ(tdm_output_wait_vblank(outputs[o], 1, 0, NULL, NULL), TDM_ERROR_NONE); } @@ -1244,15 +1244,15 @@ TEST_P(TDMOutput, OutputWaitVblankTimeout) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], 1, 0, _ut_tdm_output_done_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], 1, 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_NONE); usleep(1100000); - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); ASSERT_GT(tdm_helper_output_vblank_timer_expired(outputs[o]), 0); } @@ -1262,7 +1262,7 @@ TEST_P(TDMOutput, OutputWaitVblankInterval0) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_output_wait_vblank(outputs[0], 0, 0, _ut_tdm_output_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_output_wait_vblank(outputs[0], 0, 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMOutput, OutputWaitVblankInterval) @@ -1270,22 +1270,22 @@ TEST_P(TDMOutput, OutputWaitVblankInterval) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); /* start from 1 */ for (int t = 1; t < 10; t++) { double start, end, interval; - interval = ut_tdm_output_get_vblank_interval_time(outputs[o]); + interval = tc_tdm_output_get_vblank_interval_time(outputs[o]); done1 = false; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); while (!done1) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -1300,25 +1300,25 @@ TEST_P(TDMOutput, OutputWaitVblankFewTimesInOneVblank) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); /* start from 1 */ for (int t = 1; t < 10; t++) { double start, end, interval; - interval = ut_tdm_output_get_vblank_interval_time(outputs[o]); + interval = tc_tdm_output_get_vblank_interval_time(outputs[o]); done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE); start = tdm_helper_get_time(); while (!done1 || !done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -1333,19 +1333,19 @@ TEST_P(TDMOutput, OutputWaitVblankBeforeDpmsOff) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], false), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], false), true); for (int t = 0; t < 10; t++) { bool done = false; - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], 1, 0, _ut_tdm_output_done_cb, &done), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], 1, 0, _tc_tdm_output_done_cb, &done), TDM_ERROR_NONE); if (t == 9) ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } @@ -1355,20 +1355,20 @@ TEST_P(TDMOutput, OutputRemoveVblankHandler) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); /* start from 1 */ for (int t = 1; t < 10; t++) { done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done3), TDM_ERROR_NONE); - tdm_output_remove_vblank_handler(outputs[o], _ut_tdm_output_done_cb, &done2); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE); + tdm_output_remove_vblank_handler(outputs[o], _tc_tdm_output_done_cb, &done2); while (!done1 || done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } @@ -1378,33 +1378,33 @@ TEST_P(TDMOutput, OutputRemoveVblankHandlerDifferentData) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ut_tdm_output_prepare(dpy, outputs[o], true); + tc_tdm_output_prepare(dpy, outputs[o], true); /* start from 1 */ for (int t = 1; t < 10; t++) { done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done3), TDM_ERROR_NONE); - tdm_output_remove_vblank_handler(outputs[o], _ut_tdm_output_done_cb, NULL); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE); + tdm_output_remove_vblank_handler(outputs[o], _tc_tdm_output_done_cb, NULL); while (!done1 || !done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } static void -_ut_tdm_output_done_cb2(tdm_output *output, unsigned int sequence, +_tc_tdm_output_done_cb2(tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { bool *done = (bool*)user_data; if (done) *done = true; - tdm_output_remove_commit_handler(output, _ut_tdm_output_done_cb2, user_data); + tdm_output_remove_commit_handler(output, _tc_tdm_output_done_cb2, user_data); } TEST_P(TDMOutput, OutputRemoveVblankHandlerInHandler) @@ -1412,19 +1412,19 @@ TEST_P(TDMOutput, OutputRemoveVblankHandlerInHandler) TDM_UT_SKIP_FLAG(has_outputs); for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); /* start from 1 */ for (int t = 1; t < 10; t++) { done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _ut_tdm_output_done_cb, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_wait_vblank(outputs[o], t, 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE); while (!done1 || !done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } @@ -1438,21 +1438,21 @@ TEST_P(TDMOutput, OutputCommit) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); for (int t = 0; t < 10; t++) { double start, end, interval; - interval = ut_tdm_output_get_vblank_interval_time(outputs[o]); + interval = tc_tdm_output_get_vblank_interval_time(outputs[o]); done1 = false; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); while (!done1) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -1465,7 +1465,7 @@ TEST_P(TDMOutput, OutputCommitNullObject) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_output_commit(NULL, 0, _ut_tdm_output_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_output_commit(NULL, 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMOutput, OutputCommitNullOther) @@ -1477,7 +1477,7 @@ TEST_P(TDMOutput, OutputCommitNullOther) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE); @@ -1494,14 +1494,14 @@ TEST_P(TDMOutput, OutputCommitDpmsSuspend) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_SUSPEND), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, NULL), TDM_ERROR_DPMS_OFF); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_DPMS_OFF); } } @@ -1514,14 +1514,14 @@ TEST_P(TDMOutput, OutputCommitDpmsOff) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, NULL), TDM_ERROR_DPMS_OFF); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_DPMS_OFF); } } @@ -1534,21 +1534,21 @@ TEST_P(TDMOutput, OutputCommitDpmsAOD) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - if (!ut_tdm_output_is_aod_enable(outputs[o])) + if (!tc_tdm_output_is_aod_enable(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_AOD), TDM_ERROR_NONE); for (int t = 0; t < 10; t++) { done1 = false; - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); while (!done1) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } @@ -1562,10 +1562,10 @@ TEST_P(TDMOutput, OutputCommitAfterLayerCommit) tdm_layer *layer; tdm_error ret; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); ASSERT_EQ(tdm_output_get_primary_index(outputs[o], &index), TDM_ERROR_NONE); ASSERT_NE(index, TDM_UT_INVALID_VALUE); @@ -1603,18 +1603,18 @@ TEST_P(TDMOutput, OutputCommitFewTimesInOneVblank) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); for (int t = 0; t < 10; t++) { done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE); while (!done1 || !done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } @@ -1634,19 +1634,19 @@ TEST_P(TDMOutput, OutputRemoveCommitHandler) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); for (int t = 0; t < 10; t++) { done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done3), TDM_ERROR_NONE); - tdm_output_remove_commit_handler(outputs[o], _ut_tdm_output_done_cb, &done2); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE); + tdm_output_remove_commit_handler(outputs[o], _tc_tdm_output_done_cb, &done2); while (!done1 || done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } @@ -1660,19 +1660,19 @@ TEST_P(TDMOutput, OutputRemoveCommitHandlerDifferentData) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); for (int t = 0; t < 10; t++) { done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb, &done3), TDM_ERROR_NONE); - tdm_output_remove_commit_handler(outputs[o], _ut_tdm_output_done_cb, NULL); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE); + tdm_output_remove_commit_handler(outputs[o], _tc_tdm_output_done_cb, NULL); while (!done1 || !done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } @@ -1686,18 +1686,18 @@ TEST_P(TDMOutput, OutputRemoveCommitHandlerInHandler) if (tdm_helper_output_commit_per_vblank_enabled(outputs[o])) continue; - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - ASSERT_EQ(ut_tdm_output_prepare(dpy, outputs[o], true), true); + ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true); for (int t = 0; t < 10; t++) { done1 = done2 = done3 = false; - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb2, &done1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb2, &done2), TDM_ERROR_NONE); - ASSERT_EQ(tdm_output_commit(outputs[o], 0, _ut_tdm_output_done_cb2, &done3), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done3), TDM_ERROR_NONE); while (!done1 || !done2 || !done3) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } diff --git a/utests/src/ut_tdm_output_hwc.cpp b/haltests/src/tc_tdm_output_hwc.cpp similarity index 96% rename from utests/src/ut_tdm_output_hwc.cpp rename to haltests/src/tc_tdm_output_hwc.cpp index 29019c5..3a6ca4d 100644 --- a/utests/src/ut_tdm_output_hwc.cpp +++ b/haltests/src/tc_tdm_output_hwc.cpp @@ -28,7 +28,7 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ @@ -74,7 +74,7 @@ TEST_P(TDMOutputHwc, CreateWindowSuccessful) tdm_hwc_window * hw = NULL; for (int o = 0; o < output_count; o++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { hw = tdm_hwc_create_window(hwc[o], &error); ASSERT_EQ(TDM_ERROR_NONE, error); tdm_hwc_window_destroy(hw); @@ -123,7 +123,7 @@ TEST_P(TDMOutputHwc, SetClientTargetBufferSuccessfulSetBuff) for (int o = 0; o < output_count; o++) { tbm_surface_h target_buff = CreateBufferForOutput(i); ASSERT_NE(NULL, target_buff); - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { error = tdm_hwc_set_client_target_buffer(outputs[o], target_buff, damage, NULL, 0); tbm_surface_internal_destroy(target_buff); @@ -144,7 +144,7 @@ TEST_P(TDMOutputHwc, SetClientTargetBufferSuccessfulResetBuff) tdm_region damage = {.num_rects = 0, .rects = NULL}; for (int o = 0; o < output_count; o++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { error = tdm_hwc_set_client_target_buffer(outputs[o], NULL, damage, NULL, 0); ASSERT_EQ(TDM_ERROR_NONE, error); @@ -194,7 +194,7 @@ TEST_P(TDMOutputHwc, GetTargetBufferQueueSuccessful) tbm_surface_queue_h queue = NULL; for (int o = 0; o < output_count; o++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { queue = tdm_hwc_get_client_target_buffer_queue(outputs[o], &error); tbm_surface_queue_destroy(queue); ASSERT_EQ(TDM_ERROR_NONE, error); @@ -251,7 +251,7 @@ TEST_P(TDMOutputHwc, ValidateSuccessful) uint32_t num_types; for (int o = 0; o < output_count; o++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { error = tdm_hwc_validate(outputs[o], &num_types); ASSERT_EQ(TDM_ERROR_NONE, error); } else { @@ -311,7 +311,7 @@ TEST_P(TDMHwcWindow, GetChangedCompositionTypesSuccessful) for (int i = 0; i < output_count; i++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { error = tdm_hwc_validate(outputs[o], &validate_num); ASSERT_EQ(TDM_ERROR_NONE, error); @@ -367,7 +367,7 @@ TEST_P(TDMHwcWindow, AcceptChangesSuccessful) } for (int i = 0; i < output_count; i++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { error = tdm_hwc_validate(outputs[o], &validate_num); ASSERT_EQ(TDM_ERROR_NONE, error); @@ -401,7 +401,7 @@ TEST_P(TDMOutputHwc, GetVideoSupportedFormatsSuccessful) int count; for (int o = 0; o < output_count; o++) { - if (ut_tdm_output_is_hwc_enable(outputs[o])) { + if (tc_tdm_output_is_hwc_enable(outputs[o])) { error = tdm_hwc_get_supported_formats(outputs[o], &formats, &count); if (error != TDM_ERROR_NOT_IMPLEMENTED) { ASSERT_EQ(TDM_ERROR_NONE, error); diff --git a/utests/src/ut_tdm_vblank.cpp b/haltests/src/tc_tdm_vblank.cpp similarity index 86% rename from utests/src/ut_tdm_vblank.cpp rename to haltests/src/tc_tdm_vblank.cpp index 5a6584c..07e97ba 100644 --- a/utests/src/ut_tdm_vblank.cpp +++ b/haltests/src/tc_tdm_vblank.cpp @@ -28,12 +28,12 @@ * **************************************************************************/ -#include "ut_tdm.h" +#include "tc_tdm.h" /* LCOV_EXCL_START */ -static void _ut_tdm_vblank_create_cb(tdm_vblank *vblank, void *user_data); -static void _ut_tdm_vblank_create_cb2(tdm_vblank *vblank, void *user_data); +static void _tc_tdm_vblank_create_cb(tdm_vblank *vblank, void *user_data); +static void _tc_tdm_vblank_create_cb2(tdm_vblank *vblank, void *user_data); class TDMVblank : public TDMOutput { @@ -71,10 +71,10 @@ void TDMVblank::SetUp(void) void TDMVblank::TearDown(void) { - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb, this); - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb, NULL); - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb2, this); - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb2, NULL); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb, this); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb, NULL); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb2, this); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb2, NULL); TestDestroyVblanks(); @@ -116,7 +116,7 @@ bool TDMVblank::TestCreateVblanks3(void) vblank_count = 0; for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; vblank_count = 3; @@ -156,16 +156,16 @@ void TDMVblank::TestDestroyVblanks(void) bool TDMVblank::TestPrepareOutput(void) { for (int o = 0; o < output_count; o++) { - if (!ut_tdm_output_is_connected(outputs[o])) + if (!tc_tdm_output_is_connected(outputs[o])) continue; - TDM_UT_RETURN_FALSE_IF_FAIL(ut_tdm_output_prepare(dpy, outputs[o], false) == true); + TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_output_prepare(dpy, outputs[o], false) == true); } return true; } -bool ut_tdm_vblank_is_avaiable(tdm_vblank *vblank) +bool tc_tdm_vblank_is_avaiable(tdm_vblank *vblank) { tdm_error ret; tdm_output *output = tdm_vblank_get_output(vblank, &ret); @@ -173,13 +173,13 @@ bool ut_tdm_vblank_is_avaiable(tdm_vblank *vblank) TDM_UT_RETURN_FALSE_IF_FAIL(output != NULL); /* only check if connected */ - return ut_tdm_output_is_connected(output); + return tc_tdm_output_is_connected(output); } /* tdm_vblank_set_client_vblank_fps */ TEST_P(TDMVblank, DISABLED_VblankSetClientVblankFps) { - /* tested in ut_tdm_client.c */ + /* tested in tc_tdm_client.c */ } TEST_P(TDMVblank, VblankSetClientVblankFpsNullObject) @@ -191,7 +191,7 @@ TEST_P(TDMVblank, VblankSetClientVblankFpsNullObject) /* tdm_vblank_set_client_vblank_fps */ TEST_P(TDMVblank, DISABLED_VblankSetClientIgnoreGlobalFps) { - /* tested in ut_tdm_client.c */ + /* tested in tc_tdm_client.c */ } TEST_P(TDMVblank, VblankSetClientIgnoreGlobalFpsNullObject) @@ -252,7 +252,7 @@ TEST_P(TDMVblank, VblankDestroyNullObject) } static void -_ut_tdm_vblank_create_cb(tdm_vblank *vblank, void *user_data) +_tc_tdm_vblank_create_cb(tdm_vblank *vblank, void *user_data) { TDMVblank *test_vblank = (TDMVblank*)user_data; if (test_vblank) @@ -264,7 +264,7 @@ TEST_P(TDMVblank, VblankAddCreateHandler) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _ut_tdm_vblank_create_cb, this), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _tc_tdm_vblank_create_cb, this), TDM_ERROR_NONE); for (int o = 0; o < output_count; o++) { tdm_error ret; @@ -284,15 +284,15 @@ TEST_P(TDMVblank, VblankAddCreateHandlerTwice) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _ut_tdm_vblank_create_cb, NULL), TDM_ERROR_NONE); - ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _ut_tdm_vblank_create_cb, NULL), TDM_ERROR_BAD_REQUEST); + ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _tc_tdm_vblank_create_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _tc_tdm_vblank_create_cb, NULL), TDM_ERROR_BAD_REQUEST); } TEST_P(TDMVblank, VblankAddCreateHandlerNullObject) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_vblank_add_create_handler(NULL, _ut_tdm_vblank_create_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_vblank_add_create_handler(NULL, _tc_tdm_vblank_create_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMVblank, VblankAddCreateHandlerNullOther) @@ -307,8 +307,8 @@ TEST_P(TDMVblank, VblankRemoveCreateHandler) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _ut_tdm_vblank_create_cb, this), TDM_ERROR_NONE); - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb, this); + ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _tc_tdm_vblank_create_cb, this), TDM_ERROR_NONE); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb, this); for (int o = 0; o < output_count; o++) { tdm_error ret; @@ -328,11 +328,11 @@ TEST_P(TDMVblank, VblankRemoveCreateHandlerFewTimes) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _ut_tdm_vblank_create_cb, this), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _tc_tdm_vblank_create_cb, this), TDM_ERROR_NONE); - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb, this); - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb, this); - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb, this); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb, this); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb, this); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb, this); for (int o = 0; o < output_count; o++) { tdm_error ret; @@ -352,9 +352,9 @@ TEST_P(TDMVblank, VblankRemoveCreateHandlerDifferentData) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _ut_tdm_vblank_create_cb, this), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _tc_tdm_vblank_create_cb, this), TDM_ERROR_NONE); - tdm_vblank_remove_create_handler(dpy, _ut_tdm_vblank_create_cb, NULL); + tdm_vblank_remove_create_handler(dpy, _tc_tdm_vblank_create_cb, NULL); for (int o = 0; o < output_count; o++) { tdm_error ret; @@ -371,18 +371,18 @@ TEST_P(TDMVblank, VblankRemoveCreateHandlerDifferentData) } static void -_ut_tdm_vblank_create_cb2(tdm_vblank *vblank, void *user_data) +_tc_tdm_vblank_create_cb2(tdm_vblank *vblank, void *user_data) { TDMVblank *test_vblank = (TDMVblank*)user_data; test_vblank->done = true; - tdm_vblank_remove_create_handler(test_vblank->dpy, _ut_tdm_vblank_create_cb2, user_data); + tdm_vblank_remove_create_handler(test_vblank->dpy, _tc_tdm_vblank_create_cb2, user_data); } TEST_P(TDMVblank, VblankRemoveCreateHandlerInHandler) { TDM_UT_SKIP_FLAG(has_outputs); - ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _ut_tdm_vblank_create_cb2, this), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_add_create_handler(dpy, _tc_tdm_vblank_create_cb2, this), TDM_ERROR_NONE); for (int o = 0; o < output_count; o++) { tdm_error ret; @@ -405,7 +405,7 @@ TEST_P(TDMVblank, VblankRemoveCreateHandlerNullObject) { TDM_UT_SKIP_FLAG(has_outputs); - tdm_vblank_remove_create_handler(NULL, _ut_tdm_vblank_create_cb, NULL); + tdm_vblank_remove_create_handler(NULL, _tc_tdm_vblank_create_cb, NULL); } TEST_P(TDMVblank, VblankRemoveCreateHandlerNullOther) @@ -645,7 +645,7 @@ TEST_P(TDMVblank, VblankGetFpsNoSet) const tdm_output_mode *mode = (const tdm_output_mode *)TDM_UT_INVALID_VALUE; tdm_error ret; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_get_fps(vblanks[v], &fps), TDM_ERROR_NONE); @@ -888,7 +888,7 @@ TEST_P(TDMVblank, VblankGetEnableFakeNoSet) } static void -_ut_tdm_vblank_cb(tdm_vblank *vblank, tdm_error error, unsigned int sequence, +_tc_tdm_vblank_cb(tdm_vblank *vblank, tdm_error error, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) { unsigned int *cur_seq = (unsigned int *)user_data; @@ -907,7 +907,7 @@ TEST_P(TDMVblank, VblankWait) unsigned int fps = (unsigned int)TDM_UT_INVALID_VALUE; double start, end, interval; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_get_fps(vblanks[v], &fps), TDM_ERROR_NONE); @@ -918,9 +918,9 @@ TEST_P(TDMVblank, VblankWait) unsigned int cur_seq = 0; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -940,7 +940,7 @@ TEST_P(TDMVblank, VblankWaitFewTime) unsigned int fps = (unsigned int)TDM_UT_INVALID_VALUE; double start, end, interval; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_get_fps(vblanks[v], &fps), TDM_ERROR_NONE); @@ -952,11 +952,11 @@ TEST_P(TDMVblank, VblankWaitFewTime) cur_seq = seq1 = seq2 = 0; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &seq1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &seq2), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &seq1), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &seq2), TDM_ERROR_NONE); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); ASSERT_NE(seq1, 0); @@ -975,7 +975,7 @@ TEST_P(TDMVblank, VblankWaitInterval0) ASSERT_EQ(TestPrepareOutput(), true); ASSERT_EQ(TestCreateVblanks(), true); - ASSERT_EQ(tdm_vblank_wait(vblanks[0], 0, 0, 0, _ut_tdm_vblank_cb, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_vblank_wait(vblanks[0], 0, 0, 0, _tc_tdm_vblank_cb, NULL), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMVblank, VblankWaitInterval) @@ -989,7 +989,7 @@ TEST_P(TDMVblank, VblankWaitInterval) unsigned int fps = (unsigned int)TDM_UT_INVALID_VALUE; double start, end, interval; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_get_fps(vblanks[v], &fps), TDM_ERROR_NONE); @@ -1001,9 +1001,9 @@ TEST_P(TDMVblank, VblankWaitInterval) unsigned int cur_seq = 0; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, t, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, t, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -1024,7 +1024,7 @@ TEST_P(TDMVblank, VblankWaitSeq) unsigned int fps = (unsigned int)TDM_UT_INVALID_VALUE; double start, end, interval; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_get_fps(vblanks[v], &fps), TDM_ERROR_NONE); @@ -1034,14 +1034,14 @@ TEST_P(TDMVblank, VblankWaitSeq) for (int t = 0; t < 10; t++) { unsigned int cur_seq = 0, temp = 0; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); start = tdm_helper_get_time(); - ASSERT_EQ(tdm_vblank_wait_seq(vblanks[v], 0, 0, cur_seq + 1, _ut_tdm_vblank_cb, &temp), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait_seq(vblanks[v], 0, 0, cur_seq + 1, _tc_tdm_vblank_cb, &temp), TDM_ERROR_NONE); while (temp == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -1061,7 +1061,7 @@ TEST_P(TDMVblank, VblankWaitSeqInterval) unsigned int fps = (unsigned int)TDM_UT_INVALID_VALUE; double start, end, interval; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_get_fps(vblanks[v], &fps), TDM_ERROR_NONE); @@ -1072,14 +1072,14 @@ TEST_P(TDMVblank, VblankWaitSeqInterval) for (int t = 1; t < 10; t++) { unsigned int cur_seq = 0, temp = 0; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); start = tdm_helper_get_time(); - ASSERT_EQ(tdm_vblank_wait_seq(vblanks[v], 0, 0, cur_seq + t, _ut_tdm_vblank_cb, &temp), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait_seq(vblanks[v], 0, 0, cur_seq + t, _tc_tdm_vblank_cb, &temp), TDM_ERROR_NONE); while (temp == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -1095,7 +1095,7 @@ TEST_P(TDMVblank, VblankWaitNullObject) unsigned int cur_seq = 0; - ASSERT_EQ(tdm_vblank_wait(NULL, 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_vblank_wait(NULL, 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_INVALID_PARAMETER); } TEST_P(TDMVblank, VblankWaitNullOther) @@ -1119,12 +1119,12 @@ TEST_P(TDMVblank, VblankWaitDpmsOff) tdm_output *output = tdm_vblank_get_output(vblanks[v], &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; ASSERT_EQ(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, NULL), TDM_ERROR_DPMS_OFF); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, NULL), TDM_ERROR_DPMS_OFF); } } @@ -1141,15 +1141,15 @@ TEST_P(TDMVblank, VblankWaitBeforeDpmsOff) tdm_output *output = tdm_vblank_get_output(vblanks[v], &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &temp), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &temp), TDM_ERROR_NONE); ASSERT_EQ(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); while (temp == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } @@ -1165,17 +1165,17 @@ TEST_P(TDMVblank, VblankWaitSetEnableFakeDpmsOff) tdm_output *output = tdm_vblank_get_output(vblanks[v], &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; - if (!ut_tdm_output_is_connected(output)) + if (!tc_tdm_output_is_connected(output)) continue; ASSERT_EQ(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); ASSERT_EQ(tdm_vblank_set_enable_fake(vblanks[v], 1), TDM_ERROR_NONE); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, NULL), TDM_ERROR_NONE); } } @@ -1191,10 +1191,10 @@ TEST_P(TDMVblank, VblankWaitDisconnectedOutput) tdm_output *output = tdm_vblank_get_output(vblanks[v], &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); - if (ut_tdm_output_is_connected(output)) + if (tc_tdm_output_is_connected(output)) continue; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, NULL), TDM_ERROR_OUTPUT_DISCONNECTED); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, NULL), TDM_ERROR_OUTPUT_DISCONNECTED); } } @@ -1209,7 +1209,7 @@ TEST_P(TDMVblank, VblankWaitSetOffset) unsigned int fps = (unsigned int)TDM_UT_INVALID_VALUE; double start, end, interval; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_set_offset(vblanks[v], 100), TDM_ERROR_NONE); @@ -1222,9 +1222,9 @@ TEST_P(TDMVblank, VblankWaitSetOffset) unsigned int cur_seq = 0; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ interval" consider the delay of socket communication between kernel and platform */ @@ -1245,7 +1245,7 @@ TEST_P(TDMVblank, VblankWaitSetFps) unsigned int fps = (unsigned int)TDM_UT_INVALID_VALUE; double start, end, interval, vrefresh_interval; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_get_fps(vblanks[v], &fps), TDM_ERROR_NONE); @@ -1260,9 +1260,9 @@ TEST_P(TDMVblank, VblankWaitSetFps) unsigned int cur_seq = 0; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ vrefresh_interval" consider the delay of socket communication between kernel and platform */ @@ -1283,7 +1283,7 @@ TEST_P(TDMVblank, VblankWaitSetFixedFps) unsigned int fps = (unsigned int)TDM_UT_INVALID_VALUE; double start, end, interval; - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; ASSERT_EQ(tdm_vblank_get_fps(vblanks[v], &fps), TDM_ERROR_NONE); @@ -1300,9 +1300,9 @@ TEST_P(TDMVblank, VblankWaitSetFixedFps) unsigned int cur_seq = 0; start = tdm_helper_get_time(); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+ vrefresh_interval" consider the delay of socket communication between kernel and platform */ @@ -1325,7 +1325,7 @@ TEST_P(TDMVblank, VblankWaitEnableDisableGlobalFps) ASSERT_EQ(TestCreateVblanks3(), true); ASSERT_EQ(vblank_count, 3); - if (!ut_tdm_vblank_is_avaiable(vblanks[0])) + if (!tc_tdm_vblank_is_avaiable(vblanks[0])) return; ASSERT_EQ(tdm_vblank_get_fps(vblanks[0], &fps), TDM_ERROR_NONE); @@ -1342,12 +1342,12 @@ TEST_P(TDMVblank, VblankWaitEnableDisableGlobalFps) for (int v = 0; v < 3; v++) { cur_seq[v] = 0; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); } start = tdm_helper_get_time(); while (cur_seq[2] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); end = tdm_helper_get_time(); /* "+- vrefresh_interval" consider the delay of socket communication between kernel and platform */ @@ -1358,27 +1358,27 @@ TEST_P(TDMVblank, VblankWaitEnableDisableGlobalFps) ASSERT_EQ(cur_seq[0], 0); while (cur_seq[1] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); ASSERT_EQ(cur_seq[0], 0); while (cur_seq[0] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); /* disable test. global fps doesn't effect server's vblanks */ tdm_vblank_enable_global_fps(0, 0); for (int v = 0; v < 3; v++) { cur_seq[v] = 0; - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq[v]), TDM_ERROR_NONE); } while (cur_seq[2] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); ASSERT_EQ(cur_seq[1], 0); ASSERT_EQ(cur_seq[0], 0); while (cur_seq[1] == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); ASSERT_EQ(cur_seq[0], 0); } @@ -1394,15 +1394,15 @@ TEST_P(TDMVblank, VblankWaitSetEnableFakeDisconnected) tdm_output *output = tdm_vblank_get_output(vblanks[v], &ret); ASSERT_EQ(ret, TDM_ERROR_NONE); - if (!ut_tdm_vblank_is_avaiable(vblanks[v])) + if (!tc_tdm_vblank_is_avaiable(vblanks[v])) continue; - if (ut_tdm_output_is_connected(output)) + if (tc_tdm_output_is_connected(output)) continue; ASSERT_EQ(tdm_vblank_set_enable_fake(vblanks[v], 1), TDM_ERROR_DPMS_OFF); - ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, NULL), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblanks[v], 0, 0, 1, _tc_tdm_vblank_cb, NULL), TDM_ERROR_NONE); } } @@ -1422,10 +1422,10 @@ TEST_P(TDMVblank, VblankWaitTimeout) tdm_vblank *vblank = vblanks[0]; unsigned int cur_seq = 0; - ASSERT_EQ(tdm_vblank_wait(vblank, 0, 0, 1, _ut_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); + ASSERT_EQ(tdm_vblank_wait(vblank, 0, 0, 1, _tc_tdm_vblank_cb, &cur_seq), TDM_ERROR_NONE); usleep(1200000); while (cur_seq == 0) - ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 0e29b11..6c93349 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -1,5 +1,5 @@ -%define UTEST_PACKAGE 1 -%define UTEST_GCOV 0 +%define HALTESTS_PACKAGE 1 +%define HALTESTS_GCOV 0 Name: libtdm Version: 1.18.0 @@ -46,7 +46,7 @@ Requires: libtdm-devel %description client-devel Tizen Display Manager Client Library headers -%if "%{UTEST_PACKAGE}" == "1" +%if "%{HALTESTS_PACKAGE}" == "1" %package haltests Summary: Tizen Display Manager unit tests package Group: Development/Libraries @@ -70,19 +70,19 @@ This contains libtdm tools for fundamental testing cp %{SOURCE1001} . %build -UTEST="no" +HALTESTS="no" -%if "%{UTEST_PACKAGE}" == "1" -UTEST="yes" +%if "%{HALTESTS_PACKAGE}" == "1" +HALTESTS="yes" %endif -%if "%{UTEST_GCOV}" == "1" +%if "%{HALTESTS_GCOV}" == "1" CFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV" CXXFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV" LDFLAGS+=" -lgcov" %endif -%reconfigure --disable-static --with-utests=${UTEST} \ +%reconfigure --disable-static --with-haltests=${HALTESTS} \ --with-tdm-data-path=%{TZ_SYS_RO_SHARE}/tdm \ CFLAGS="${CFLAGS} -Wall -Werror" \ CXXFLAGS="${CXXFLAGS} -Wall -Werror" \ @@ -151,10 +151,10 @@ rm -f %{_unitdir_user}/basic.target.wants/tdm-socket-user.path %attr(750,root,root) %{_bindir}/tdm-test-server %{_bindir}/tdm-test-client -%if "%{UTEST_PACKAGE}" == "1" +%if "%{HALTESTS_PACKAGE}" == "1" %files haltests %defattr(-,root,root,-) -%{_bindir}/tdm-utests +%{_bindir}/tdm-haltests %endif %changelog diff --git a/utests/Makefile.am b/utests/Makefile.am deleted file mode 100644 index 7aed5c8..0000000 --- a/utests/Makefile.am +++ /dev/null @@ -1,45 +0,0 @@ -bin_PROGRAMS = tdm-utests - -tdm_utests_SOURCES = \ - src/ut_tdm_main.cpp \ - src/ut_tdm_log.cpp \ - src/ut_tdm_env.cpp \ - src/ut_tdm_event_loop.cpp \ - src/ut_tdm_buffer.cpp \ - src/ut_tdm_helper.cpp \ - src/ut_tdm_vblank.cpp \ - src/ut_tdm_display.cpp \ - src/ut_tdm_output.cpp \ - src/ut_tdm_layer.cpp \ - src/ut_tdm_client.cpp \ - src/ut_tdm_backend_env.cpp \ - src/ut_tdm_backend_display.cpp \ - src/ut_tdm_backend_pp.cpp \ - src/ut_tdm_backend_capture.cpp - -tdm_utests_SOURCES += \ - ../tools/buffers.c - -tdm_utests_CXXFLAGS = \ - $(CXXFLAGS) \ - $(TDM_CFLAGS) \ - -I../src \ - -I../include \ - -I../client \ - -I../tools \ - -I$(includedir)/gtest \ - -fpermissive -# The flag -w is used, because there are many warnings in libtdm's sources. -# Warnings occur because we build project with g++. -# In C++ we need to use explicit types conversion. - -tdm_utests_LDFLAGS = \ - ${LDFLAGS} \ - $(TDM_LIBS) \ - $(top_builddir)/src/libtdm.la \ - $(top_builddir)/client/libtdm-client.la \ - $(top_builddir)/common/libtdm-common.la \ - -lgtest - -check: - ./tdm-utests -- 2.7.4 From fcd7abd856196116815e6a205a6e628b77bca3e3 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Fri, 4 May 2018 13:03:33 +0900 Subject: [PATCH 06/16] package version up to 1.18.1 Change-Id: Icc67dbafb9eb78699c53098d0aa88a2a543110a1 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 6c93349..f3d74ce 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 1.18.0 +Version: 1.18.1 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 1077efadd285a710bef44551fed5c00395336b22 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Mon, 14 May 2018 15:12:41 +0900 Subject: [PATCH 07/16] thread: Do not send a value of sync as '1' to display thread (quick-fix) Sync type event from display-thread(main thread) can't be handled. In this way, if we call tdm_thread_send_cb() with 'cb_base->sync = 1', then libtdm will eveventually raise abort(). Please see commit '4abfab36' for more detail. Change-Id: Ia588141fc9e752753dbe04fda835c5532839d95e --- src/tdm_thread.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/tdm_thread.c b/src/tdm_thread.c index 997d772..2cc2f13 100644 --- a/src/tdm_thread.c +++ b/src/tdm_thread.c @@ -708,7 +708,12 @@ tdm_thread_cb_call(void *object, tdm_thread_cb_base *cb_base, unsigned int propa if (!handler_in_other_thread) { if (keep_private_thread) { - if (cb_base->sync && waiting_tid != 0) { + /* NOTE quick fix + * In case of 'cb_base->sync = 0' and 'waiting_tid != 0', + * probably it means one thread is waiting for signal of + * pthread condition. + */ + if (!cb_base->sync && waiting_tid != 0) { waiting_tid = 0; pthread_cond_signal(&keep_private_thread->event_cond); if (tdm_debug_module & TDM_DEBUG_THREAD) @@ -726,11 +731,23 @@ tdm_thread_cb_call(void *object, tdm_thread_cb_base *cb_base, unsigned int propa */ assert(keep_private_thread != NULL); - ret = tdm_thread_send_cb(private_display->private_loop, cb_base); - TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, TDM_ERROR_OPERATION_FAILED); - + if (!cb_base->sync) { + ret = tdm_thread_send_cb(private_display->private_loop, cb_base); + TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, TDM_ERROR_OPERATION_FAILED); + } /* waiting until all cb are done in another thread */ - if (cb_base->sync) { + else { + /* NOTE quick fix + * Sync type event from display-thread(main thread) can't be + * handled. In this way, if we call tdm_thread_send_cb() with + * 'cb_base->sync = 1', then libtdm will eveventually raise + * abort(). Please see commit '4abfab36' for more detail. + */ + cb_base->sync = 0; + ret = tdm_thread_send_cb(private_display->private_loop, cb_base); + TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, TDM_ERROR_OPERATION_FAILED); + cb_base->sync = 1; + /* if waiting_tid is not 0, it means there are two sync-type events at the same time. * and it would make deadlock issue. */ -- 2.7.4 From 58828ed23597b6ba74af0b6a76af7d04b5677e50 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Mon, 14 May 2018 15:31:48 +0900 Subject: [PATCH 08/16] package version up to 1.18.2 Change-Id: I9497d4acca1549053030f5865016d825fd17413e --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index f3d74ce..9be0331 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 1.18.1 +Version: 1.18.2 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From c62d87e018d27ccd2074b3ef26a37b60110e5d0d Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Mon, 21 May 2018 16:46:11 +0900 Subject: [PATCH 09/16] define the backend ABI version The TDM backend ABI version should be separated with TDM front-end ABI. Therefore, tdm defines the TDM backend ABI version at the tbm_backend.h. The tdm checks the module ABI version with this backend ABI version when the libtdm loads the backend modules. Change-Id: I80d842f225d261f7fc024c6928dc66c9d4a95a65 --- include/tdm_backend.h | 5 +++++ src/tdm.c | 27 ++++++++++++++++----------- src/tdm_backend.c | 10 ++-------- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/include/tdm_backend.h b/include/tdm_backend.h index 53f979a..e9fc70d 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -1134,6 +1134,11 @@ typedef tdm_error (*tdm_event_loop_timer_handler)(void *user_data); (((major) << 16) & TDM_BACKEND_MAJOR_VERSION_MASK) | \ ((minor) & TDM_BACKEND_MINOR_VERSION_MASK) + +#define TDM_BACKEND_ABI_VERSION_1_0 TDM_BACKEND_SET_ABI_VERSION(1, 0) +#define TDM_BACKEND_ABI_VERSION_2_0 TDM_BACKEND_SET_ABI_VERSION(2, 0) +#define TDM_BACKEND_ABI_LATEST_VERSION TDM_BACKEND_ABI_VERSION_2_0 /**< the latest version of the tdm backend abi */ + /** * @brief * This MACRO is deprecated since 1.2.0. Use TDM_BACKEND_SET_ABI_VERSION instead of this. diff --git a/src/tdm.c b/src/tdm.c index bc59c3c..6f938ec 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -745,10 +745,14 @@ static pthread_mutex_t gLock = PTHREAD_MUTEX_INITIALIZER; static tdm_error _tdm_display_check_module(tdm_backend_module *module) { - int major, minor; + int tdm_backend_major, tdm_backend_minor; + int backend_module_major, backend_module_minor; - TDM_INFO("TDM ABI version : %d.%d", - TDM_MAJOR_VERSION, TDM_MINOR_VERSION); + tdm_backend_major = TDM_BACKEND_GET_ABI_MAJOR(TDM_BACKEND_ABI_LATEST_VERSION); + tdm_backend_minor = TDM_BACKEND_GET_ABI_MINOR(TDM_BACKEND_ABI_LATEST_VERSION); + + TDM_INFO("TDM Backend ABI version : %d.%d", + tdm_backend_major, tdm_backend_minor); if (!module->name) { TDM_ERR("TDM backend doesn't have name"); @@ -760,22 +764,23 @@ _tdm_display_check_module(tdm_backend_module *module) return TDM_ERROR_BAD_MODULE; } - major = TDM_BACKEND_GET_ABI_MAJOR(module->abi_version); - minor = TDM_BACKEND_GET_ABI_MINOR(module->abi_version); + backend_module_major = TDM_BACKEND_GET_ABI_MAJOR(module->abi_version); + backend_module_minor = TDM_BACKEND_GET_ABI_MINOR(module->abi_version); TDM_INFO("TDM module name: %s", module->name); TDM_INFO("'%s' vendor: %s", module->name, module->vendor); - TDM_INFO("'%s' version: %d.%d", module->name, major, minor); + TDM_INFO("'%s' backend ABI version: %d.%d", module->name, backend_module_major, backend_module_minor); - if (major != TDM_MAJOR_VERSION) { - TDM_ERR("'%s' major version mismatch, %d != %d", - module->name, major, TDM_MAJOR_VERSION); + if (backend_module_major > tdm_backend_major) { + TDM_ERR("'%s' major version(%d) is newer than %d", + module->name, backend_module_major, tdm_backend_major); return TDM_ERROR_BAD_MODULE; } - if (minor > TDM_MINOR_VERSION) { + if (tdm_backend_major == backend_module_major && + backend_module_minor > tdm_backend_minor) { TDM_ERR("'%s' minor version(%d) is newer than %d", - module->name, minor, TDM_MINOR_VERSION); + module->name, backend_module_minor, tdm_backend_minor); return TDM_ERROR_BAD_MODULE; } diff --git a/src/tdm_backend.c b/src/tdm_backend.c index 13ea24c..c979129 100644 --- a/src/tdm_backend.c +++ b/src/tdm_backend.c @@ -146,10 +146,7 @@ tdm_backend_register_func_hwc(tdm_display *dpy, tdm_func_hwc *func_hwc) assert(private_display->current_module); module = private_display->current_module->module_data; - /* FIX ME: - Temporarily, we set the version of hwc window to 1.1 for the development. - Originally the hwc window version is 2.0. */ - if (_check_abi_version(module, 1, 1) < 0) + if (_check_abi_version(module, 2, 0) < 0) return TDM_ERROR_BAD_MODULE; private_display->current_module->func_hwc = *func_hwc; @@ -171,10 +168,7 @@ tdm_backend_register_func_hwc_window(tdm_display *dpy, tdm_func_hwc_window *func assert(private_display->current_module); module = private_display->current_module->module_data; - /* FIX ME: - Temporarily, we set the version of hwc window to 1.1 for the development. - Originally the hwc window version is 2.0. */ - if (_check_abi_version(module, 1, 1) < 0) + if (_check_abi_version(module, 2, 0) < 0) return TDM_ERROR_BAD_MODULE; private_display->current_module->func_hwc_window = *func_hwc_window; -- 2.7.4 From 78d22f2de14be04a4878d20649e2bc0df9fbb8c7 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Mon, 21 May 2018 16:49:58 +0900 Subject: [PATCH 10/16] package version up to 2.0.0 - add haltest cases - add the new backend APIs for the TDM-HWC at tdm_backend.h - increase the major verion of the TBM backend ABI to version 2.0 The tdm backend module needs to set the valid backend version. Change-Id: I62538cb7d634e465e007900e7b49595ea4cd9226 --- configure.ac | 4 ++-- packaging/libtdm.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index dd27580..3d13ec7 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ AC_PREREQ([2.60]) -m4_define([tdm_major_version], [1]) -m4_define([tdm_minor_version], [16]) +m4_define([tdm_major_version], [2]) +m4_define([tdm_minor_version], [0]) m4_define([tdm_micro_version], [0]) m4_define([tdm_version], [tdm_major_version.tdm_minor_version.tdm_micro_version]) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 9be0331..5bcae43 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 1.18.2 +Version: 2.0.0 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 3ada4a19f780e3d8dbe3166a7c8af0c8fee1c4f2 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 30 May 2018 10:39:46 +0900 Subject: [PATCH 11/16] tc: add tests for tdm_hwc and tdm_hwc_window Change-Id: Id19c9f11771397f60204ef5a6af07576f4da7f37 --- haltests/Makefile.am | 4 +- haltests/src/tc_tdm_hwc.cpp | 525 +++++++++++++++++++++++++++++++++++++ haltests/src/tc_tdm_hwc_window.cpp | 351 +++++++++++++++---------- haltests/src/tc_tdm_output_hwc.cpp | 429 ------------------------------ 4 files changed, 739 insertions(+), 570 deletions(-) create mode 100644 haltests/src/tc_tdm_hwc.cpp delete mode 100644 haltests/src/tc_tdm_output_hwc.cpp diff --git a/haltests/Makefile.am b/haltests/Makefile.am index 276b503..278e1ef 100644 --- a/haltests/Makefile.am +++ b/haltests/Makefile.am @@ -15,7 +15,9 @@ tdm_haltests_SOURCES = \ src/tc_tdm_backend_env.cpp \ src/tc_tdm_backend_display.cpp \ src/tc_tdm_backend_pp.cpp \ - src/tc_tdm_backend_capture.cpp + src/tc_tdm_backend_capture.cpp \ + src/tc_tdm_hwc.cpp \ + src/tc_tdm_hwc_window.cpp tdm_haltests_SOURCES += \ ../tools/buffers.c diff --git a/haltests/src/tc_tdm_hwc.cpp b/haltests/src/tc_tdm_hwc.cpp new file mode 100644 index 0000000..545c6a0 --- /dev/null +++ b/haltests/src/tc_tdm_hwc.cpp @@ -0,0 +1,525 @@ +/************************************************************************** + * + * 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 "tc_tdm.h" + +/* LCOV_EXCL_START */ + +#define HWC_WIN_NUM 5 + +class TDMHwc : public TDMOutput +{ +public: + TDMHwc(); + void SetUp(void); + void TearDown(void); + + tdm_error error; +}; + +TDMHwc::TDMHwc() +{ + error = TDM_ERROR_NONE; +} + +void TDMHwc::SetUp(void) +{ + TDMOutput::SetUp(); +} + +void TDMHwc::TearDown(void) +{ + TDMOutput::TearDown(); +} + +static void +_tc_tdm_hwc_commit_cb(tdm_hwc *hwc, unsigned int sequence, + unsigned int tv_sec, unsigned int tv_usec, + void *user_data) +{ + bool *done = (bool*)user_data; + if (done) + *done = true; +} + +/* tdm_hwc_window * tdm_hwc_create_window(tdm_output *output, tdm_error *error); */ +TEST_P(TDMHwc, CreateWindowFailNull) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + ASSERT_EQ(NULL, tdm_hwc_create_window(NULL, &error)); + ASSERT_NE(TDM_ERROR_NONE, error); +} + +TEST_P(TDMHwc, CreateWindowSuccessful) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error; + tdm_hwc_window * hw = NULL; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + hw = tdm_hwc_create_window(hwc, &error); + ASSERT_EQ(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hw); + } else { + ASSERT_EQ(NULL, tdm_hwc_create_window(hwc, &error)); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } +} + +/* tdm_hwc_get_supported_formats() */ +TEST_P(TDMHwc, GetSupportedFormatsFailNull) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_error error; + + error = tdm_hwc_get_supported_formats(NULL, NULL, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); +} + +TEST_P(TDMHwc, GetSupportedFormatsSuccessful) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + const tbm_format *formats; + int count; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + error = tdm_hwc_get_supported_formats(hwc, &formats, &count); + if (error != TDM_ERROR_NOT_IMPLEMENTED) { + ASSERT_EQ(TDM_ERROR_NONE, error); + if (count > 0) + ASSERT_NE(NULL, formats); + } + } else { + error = tdm_hwc_get_supported_formats(hwc, &formats, &count); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } +} + +/* tdm_hwc_get_available_properties() */ +TEST_P(TDMHwc, GetAvailablePropertiesFailNullWin) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + const tdm_prop *props; + int count; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + error = tdm_hwc_get_available_properties(NULL, &props, &count); + ASSERT_NE(TDM_ERROR_NONE, error); + + error = tdm_hwc_get_available_properties(hwc, NULL, &count); + ASSERT_NE(TDM_ERROR_NONE, error); + + error = tdm_hwc_get_available_properties(hwc, &props, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + } else { + error = tdm_hwc_get_available_properties(hwc, &props, &count); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } +} + +TEST_P(TDMHwc, GetAvailablePropertiesSuccess) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + const tdm_prop *props; + int count; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + error = tdm_hwc_get_available_properties(hwc, &props, &count); + ASSERT_TRUE(TDM_ERROR_NONE == error || TDM_ERROR_NOT_IMPLEMENTED == error); + } else { + error = tdm_hwc_get_available_properties(hwc, &props, &count); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } + +} + +/* tdm_hwc_get_client_target_buffer_queue() */ +TEST_P(TDMHwc, GetClientTargetBufferQueueFailNullObject) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + tbm_surface_queue_h queue = NULL; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + queue = tdm_hwc_get_client_target_buffer_queue(NULL, &error); + ASSERT_NE(TDM_ERROR_NONE, error); + ASSERT_EQ(NULL, queue); + + queue = tdm_hwc_get_client_target_buffer_queue(NULL, NULL); + ASSERT_EQ(NULL, queue); + } else { + ASSERT_EQ(NULL, queue); + } + } +} + +TEST_P(TDMHwc, GetClientTargetBufferQueueFainNoHwc) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + tbm_surface_queue_h queue = NULL; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + queue = tdm_hwc_get_client_target_buffer_queue(hwc, &error); + ASSERT_EQ(TDM_ERROR_NONE, error); + ASSERT_NE(NULL, queue); + } else { + queue = tdm_hwc_get_client_target_buffer_queue(hwc, &error); + ASSERT_NE(TDM_ERROR_NONE, error); + ASSERT_EQ(NULL, queue); + } + } +} + +TEST_P(TDMHwc, GetClientTargetBufferQueueSuccessful) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + tbm_surface_queue_h queue = NULL; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + queue = tdm_hwc_get_client_target_buffer_queue(hwc, &error); + tbm_surface_queue_destroy(queue); + ASSERT_EQ(TDM_ERROR_NONE, error); + ASSERT_NE(NULL, queue); + + queue = tdm_hwc_get_client_target_buffer_queue(hwc, NULL); + tbm_surface_queue_destroy(queue); + ASSERT_EQ(TDM_ERROR_NONE, error); + ASSERT_NE(NULL, queue); + } else { + queue = tdm_hwc_get_client_target_buffer_queue(hwc, &error); + ASSERT_NE(TDM_ERROR_NONE, error); + ASSERT_EQ(NULL, queue); + + queue = tdm_hwc_get_client_target_buffer_queue(hwc, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + ASSERT_EQ(NULL, queue); + } + } +} + +/* tdm_hwc_set_client_target_buffer() */ +TEST_P(TDMHwc, SetClientTargetBufferFailNullOutput) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_region damage = {.num_rects = 0, .rects = NULL}; + tbm_surface_h target_buff = NULL; + + target_buff = tbm_surface_internal_create_with_flags(720, 1024, + TBM_FORMAT_ARGB8888, TBM_BO_DEFAULT); + ASSERT_NE(NULL, target_buff); + + error = tdm_hwc_set_client_target_buffer(NULL, target_buff, damage); + tbm_surface_internal_destroy(target_buff); + ASSERT_NE(TDM_ERROR_NONE, error); +} + +TEST_P(TDMHwc, SetClientTargetBufferSuccessfulSetBuff) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + tdm_region damage = {.num_rects = 0, .rects = NULL}; + const tdm_output_mode *mode = NULL; + tbm_surface_h target_buff = NULL; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE); + target_buff = tbm_surface_internal_create_with_flags(mode->hdisplay, mode->vdisplay, + TBM_FORMAT_ARGB8888, TBM_BO_DEFAULT); + ASSERT_NE(NULL, target_buff); + + error = tdm_hwc_set_client_target_buffer(hwc, target_buff, damage); + tbm_surface_internal_destroy(target_buff); + ASSERT_EQ(TDM_ERROR_NONE, error); + } else { + error = tdm_hwc_set_client_target_buffer(hwc, target_buff, damage); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } +} + +TEST_P(TDMHwc, SetClientTargetBufferSuccessfulResetBuff) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + tdm_region damage = {.num_rects = 0, .rects = NULL}; + tbm_surface_h target_buff = NULL; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + error = tdm_hwc_set_client_target_buffer(hwc, NULL, damage); + tbm_surface_internal_destroy(target_buff); + ASSERT_EQ(TDM_ERROR_NONE, error); + } else { + error = tdm_hwc_set_client_target_buffer(hwc, NULL, damage); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } +} + +/* tdm_hwc_validate() */ +TEST_P(TDMHwc, ValidateFailNull) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + uint32_t num_types; + + error = tdm_hwc_validate(NULL, NULL, 0, &num_types); + ASSERT_NE(TDM_ERROR_NONE, error); + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + error = tdm_hwc_validate(hwc, NULL, 0, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + } else { + error = tdm_hwc_validate(hwc, NULL, 0, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } +} + +/* tdm_hwc_get_changed_composition_types() */ +TEST_P(TDMHwc, GetChangedCompositionTypesFailNull) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + uint32_t num_elements; + + error = tdm_hwc_get_changed_composition_types(NULL, &num_elements, NULL, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + error = tdm_hwc_get_changed_composition_types(hwc, NULL, NULL, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + } else { + error = tdm_hwc_get_changed_composition_types(hwc, NULL, NULL, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } +} + +/* tdm_error tdm_hwc_accept_changes() */ +TEST_P(TDMHwc, AcceptChangesFailNull) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + error = tdm_hwc_accept_changes(NULL); + ASSERT_NE(TDM_ERROR_NONE, error); +} + +TEST_P(TDMHwc, AcceptChangesFailNoHwc) +{ + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + error = tdm_hwc_accept_changes(hwc); + ASSERT_NE(TDM_ERROR_NONE, error); + } else { + error = tdm_hwc_accept_changes(hwc); + ASSERT_NE(TDM_ERROR_NONE, error); + } + } +} + +TEST_P(TDMHwc, AcceptChangesSuccessful) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + tdm_hwc_window *hwc_wnds[HWC_WIN_NUM]; + tdm_hwc_window **changed_hwc_window = NULL; + tdm_hwc_window_composition *composition_types = NULL; + uint32_t num_types; + uint32_t get_num = 0; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + for (int w = 0; w < HWC_WIN_NUM; w++) { + hwc_wnds[w] = tdm_hwc_create_window(hwc, &error); + ASSERT_EQ(TDM_ERROR_NONE, error); + error = tdm_hwc_window_set_composition_type(hwc_wnds[w], TDM_COMPOSITION_DEVICE); + ASSERT_EQ(TDM_ERROR_NONE, error); + } + + error = tdm_hwc_validate(hwc, hwc_wnds, HWC_WIN_NUM, &num_types); + ASSERT_EQ(TDM_ERROR_NONE, error); + + if (num_types > 0) { + changed_hwc_window = (tdm_hwc_window **)calloc(num_types, sizeof(tdm_hwc_window *)); + composition_types = (tdm_hwc_window_composition *)calloc(num_types, sizeof(tdm_hwc_window_composition)); + + error = tdm_hwc_get_changed_composition_types(hwc, &get_num, changed_hwc_window, composition_types); + ASSERT_EQ(TDM_ERROR_NONE, error); + ASSERT_EQ(get_num, num_types); + + error = tdm_hwc_accept_changes(hwc); + ASSERT_EQ(TDM_ERROR_NONE, error); + + free(composition_types); + free(changed_hwc_window); + } + + for (int w = 0; w < HWC_WIN_NUM; w++) + tdm_hwc_window_destroy(hwc_wnds[w]); + + ASSERT_EQ(TDM_ERROR_NONE, error); + } + } +} + +/* tdm_error tdm_hwc_commit() */ +TEST_P(TDMHwc, CommitFailNull) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + error = tdm_hwc_commit(NULL, 1, NULL, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); +} + +TEST_P(TDMHwc, CommitSuccessful) +{ + TDM_UT_SKIP_FLAG(has_outputs); + + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; + tdm_hwc_window *hwc_wnds[HWC_WIN_NUM]; + tdm_hwc_window **changed_hwc_window = NULL; + tdm_hwc_window_composition *composition_types = NULL; + uint32_t num_types; + uint32_t get_num = 0; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(outputs[o], &error); + if (hwc) { + for (int w = 0; w < HWC_WIN_NUM; w++) { + hwc_wnds[w] = tdm_hwc_create_window(hwc, &error); + ASSERT_EQ(TDM_ERROR_NONE, error); + error = tdm_hwc_window_set_composition_type(hwc_wnds[w], TDM_COMPOSITION_DEVICE); + ASSERT_EQ(TDM_ERROR_NONE, error); + } + + error = tdm_hwc_validate(hwc, hwc_wnds, HWC_WIN_NUM, &num_types); + ASSERT_EQ(TDM_ERROR_NONE, error); + + if (num_types > 0) { + changed_hwc_window = (tdm_hwc_window **)calloc(num_types, sizeof(tdm_hwc_window *)); + composition_types = (tdm_hwc_window_composition *)calloc(num_types, sizeof(tdm_hwc_window_composition)); + + error = tdm_hwc_get_changed_composition_types(hwc, &get_num, changed_hwc_window, composition_types); + ASSERT_EQ(TDM_ERROR_NONE, error); + ASSERT_EQ(get_num, num_types); + + error = tdm_hwc_accept_changes(hwc); + ASSERT_EQ(TDM_ERROR_NONE, error); + + free(composition_types); + free(changed_hwc_window); + } + + error = tdm_hwc_commit(hwc, 0, _tc_tdm_hwc_commit_cb, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + + for (int w = 0; w < HWC_WIN_NUM; w++) + tdm_hwc_window_destroy(hwc_wnds[w]); + + ASSERT_EQ(TDM_ERROR_NONE, error); + } + } +} + +#ifdef TDM_UT_TEST_WITH_PARAMS +INSTANTIATE_TEST_CASE_P(TDMHwcParams, + TDMHwc, + Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE))); +#else +INSTANTIATE_TEST_CASE_P(TDMHwcParams, + TDMHwc, + Values(TDM_DEFAULT_MODULE)); +#endif + +/* LCOV_EXCL_END */ \ No newline at end of file diff --git a/haltests/src/tc_tdm_hwc_window.cpp b/haltests/src/tc_tdm_hwc_window.cpp index 3af1f35..b330e85 100644 --- a/haltests/src/tc_tdm_hwc_window.cpp +++ b/haltests/src/tc_tdm_hwc_window.cpp @@ -40,50 +40,23 @@ public: TDMHwcWindow(); void SetUp(void); void TearDown(void); - - tdm_error error; - tdm_hwc_window **hwc_wins; - int hwc_count; }; TDMHwcWindow::TDMHwcWindow() { - error = TDM_ERROR_NONE; - hwc_wins = NULL; - hwc_count = 0; - video_hwc_win = NULL; } void TDMHwcWindow::SetUp(void) { - tdm_hwc_window *hw = NULL; - TDMOutput::SetUp(); - - hwc_wins = (tdm_hwc_window **)calloc(output_count * HWC_WIN_NUM, sizeof(tdm_hwc_window *)); - - //create HWC_WIN_NUM hwc_windows for each outputs - for (int o = 0; o < output_count; o++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - for (int w = 0; w < HWC_WIN_NUM; w++) { - hw = tdm_hwc_create_window(outputs[w], &error); - ASSERT_EQ(TDM_ERROR_NONE, error); - hwc_wins[hwc_count++] = hw; - } - } - } } void TDMHwcWindow::TearDown(void) { - for (int w = 0; w < hwc_count; w++) - tdm_hwc_window_destroy(hwc_wins[w]); - TDMOutput::TearDown(); } -/* void tdm_hwc_window_destroy(tdm_hwc_window *hwc_window); */ -/* +/* void tdm_hwc_window_destroy() */ TEST_P(TDMHwcWindow, DestroyWindowFailNull) { tdm_hwc_window_destroy(NULL); @@ -93,24 +66,27 @@ TEST_P(TDMHwcWindow, DestroyWindowSuccessful) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_hwc *hwc = NULL; + tdm_error error = TDM_ERROR_NONE; tdm_hwc_window *hw = NULL; for (int o = 0; o < output_count; o++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - hw = tdm_hwc_create_window(outputs[o], &error); - ASSERT_EQ(TDM_ERROR_NONE, error); - error = tdm_hwc_window_destroy(outputs[o], hw); + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + hw = tdm_hwc_create_window(hwc, &error); ASSERT_EQ(TDM_ERROR_NONE, error); + if (hw) + tdm_hwc_window_destroy(hw); } } } -*/ -/* tbm_surface_queue_h tdm_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error); */ +/* tbm_surface_queue_h tdm_hwc_window_get_buffer_queue() */ TEST_P(TDMHwcWindow, GetBufferQueueFailNull) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_error error = TDM_ERROR_NONE; tbm_surface_queue_h queue = NULL; queue = tdm_hwc_window_get_buffer_queue(NULL, &error); @@ -125,27 +101,44 @@ TEST_P(TDMHwcWindow, GetBufferQueueSuccessful) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_wins[HWC_WIN_NUM]; + tdm_error error = TDM_ERROR_NONE; + int w; tbm_surface_queue_h queue = NULL; tdm_hwc_window_info info = { 0 }; - info.src_config.format = TBM_FORMAT_ARGB8888; - info.src_config.size.h = info.src_config.size.v = 256; - info.src_config.pos.h = info.src_config.pos.w = 256; - info.dst_pos.h = info.dst_pos.w = 256; - info.transform = TDM_TRANSFORM_NORMAL; + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + for (w = 0; w < HWC_WIN_NUM; w++) { + hwc_wins[w] = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_wins[w]); + } + + info.src_config.format = TBM_FORMAT_ARGB8888; + info.src_config.size.h = info.src_config.size.v = 256; + info.src_config.pos.h = info.src_config.pos.w = 256; + info.dst_pos.h = info.dst_pos.w = 256; + info.transform = TDM_TRANSFORM_NORMAL; - for (int w = 0; w < hwc_count; w++) { - error = tdm_hwc_window_set_info(hwc_wins[w], &info); - ASSERT_EQ(TDM_ERROR_NONE, error); + for (w = 0; w < HWC_WIN_NUM; w++) { + error = tdm_hwc_window_set_info(hwc_wins[w], &info); + ASSERT_EQ(TDM_ERROR_NONE, error); - queue = tdm_hwc_window_get_buffer_queue(hwc_wins[w], &error); - tbm_surface_queue_destroy(queue); - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_NE(NULL, queue); + queue = tdm_hwc_window_get_buffer_queue(hwc_wins[w], &error); + tbm_surface_queue_destroy(queue); + ASSERT_EQ(TDM_ERROR_NONE, error); + ASSERT_NE(NULL, queue); - queue = tdm_hwc_window_get_buffer_queue(hwc_wins[w], NULL); - tbm_surface_queue_destroy(queue); - ASSERT_NE(NULL, queue); + queue = tdm_hwc_window_get_buffer_queue(hwc_wins[w], NULL); + tbm_surface_queue_destroy(queue); + ASSERT_NE(NULL, queue); + } + + for (w = 0; w < HWC_WIN_NUM; w++) + tdm_hwc_window_destroy(hwc_wins[w]); + } } } @@ -155,39 +148,70 @@ TEST_P(TDMHwcWindow, SetCompositionTypeFailNull) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_error error = TDM_ERROR_NONE; + error = tdm_hwc_window_set_composition_type(NULL, TDM_COMPOSITION_DEVICE); ASSERT_NE(TDM_ERROR_NONE, error); } -TEST_P(TDMHwcWindow, SetCompositionTypeSuccessful) +TEST_P(TDMHwcWindow, SetCompositionTypeFailInvalieCompositionType) { TDM_UT_SKIP_FLAG(has_outputs); - for (int w = 0; w < hwc_count; w++) { - error = tdm_hwc_window_set_composition_type(hwc_wins[w], TDM_COMPOSITION_DEVICE); - ASSERT_EQ(TDM_ERROR_NONE, error); - error = tdm_hwc_window_set_composition_type(hwc_wins[w], TDM_COMPOSITION_CLIENT); - ASSERT_EQ(TDM_ERROR_NONE, error); - error = tdm_hwc_window_set_composition_type(hwc_wins[w], TDM_COMPOSITION_CURSOR); - ASSERT_EQ(TDM_ERROR_NONE, error); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_win; + tdm_error error = TDM_ERROR_NONE; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + hwc_win = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_win); + error = tdm_hwc_window_set_composition_type(hwc_win, tdm_hwc_window_composition(TDM_COMPOSITION_NONE - 1)); + ASSERT_NE(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hwc_win); + } } } -TEST_P(TDMHwcWindow, SetCompositionTypeFailInvalieCompositionType) +TEST_P(TDMHwcWindow, SetCompositionTypeSuccessful) { TDM_UT_SKIP_FLAG(has_outputs); - for (int w = 0; w < hwc_count; w++) { - error = tdm_hwc_window_set_composition_type(hwc_wins[w], tdm_hwc_window_composition(TDM_COMPOSITION_NONE - 1)); - ASSERT_NE(TDM_ERROR_NONE, error); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_wins[HWC_WIN_NUM]; + tdm_error error = TDM_ERROR_NONE; + int w; + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + for (w = 0; w < HWC_WIN_NUM; w++) { + hwc_wins[w] = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_wins[w]); + } + + for (w = 0; w < HWC_WIN_NUM; w++) { + error = tdm_hwc_window_set_composition_type(hwc_wins[w], TDM_COMPOSITION_DEVICE); + ASSERT_EQ(TDM_ERROR_NONE, error); + error = tdm_hwc_window_set_composition_type(hwc_wins[w], TDM_COMPOSITION_CLIENT); + ASSERT_EQ(TDM_ERROR_NONE, error); + error = tdm_hwc_window_set_composition_type(hwc_wins[w], TDM_COMPOSITION_CURSOR); + ASSERT_EQ(TDM_ERROR_NONE, error); + } + + for (w = 0; w < HWC_WIN_NUM; w++) + tdm_hwc_window_destroy(hwc_wins[w]); + } } } -/* tdm_error tdm_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_region damage); */ +/* tdm_error tdm_hwc_window_set_buffer_damage() */ TEST_P(TDMHwcWindow, SetBufferDamageFailNullHwcWindow) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_error error = TDM_ERROR_NONE; tdm_region damage = {.num_rects = 0, .rects = NULL}; error = tdm_hwc_window_set_buffer_damage(NULL, damage); @@ -198,42 +222,69 @@ TEST_P(TDMHwcWindow, SetBufferDamageFailNullDamageRects) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_win; + tdm_error error = TDM_ERROR_NONE; tdm_region damage = {.num_rects = 1, .rects = NULL}; - for (int w = 0; w < hwc_count; w++) { - error = tdm_hwc_window_set_buffer_damage(hwc_wins[w], damage); - ASSERT_NE(TDM_ERROR_NONE, error); + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + hwc_win = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_win); + error = tdm_hwc_window_set_buffer_damage(hwc_win, damage); + ASSERT_NE(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hwc_win); + } } } - TEST_P(TDMHwcWindow, SetBufferDamageSuccessful) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_wins[HWC_WIN_NUM]; + tdm_error error = TDM_ERROR_NONE; tdm_pos const rects[1] = {0}; tdm_region damage = {.num_rects = 1, .rects = rects}; - for (int w = 0; w < hwc_count; w++) { - error = tdm_hwc_window_set_buffer_damage(hwc_wins[w], damage); - ASSERT_EQ(TDM_ERROR_NONE, error); + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + for (int w = 0; w < HWC_WIN_NUM; w++) { + hwc_wins[w] = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_wins[w]); + error = tdm_hwc_window_set_buffer_damage(hwc_wins[w], damage); + ASSERT_EQ(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hwc_wins[w]); + } + } } } - -/* tdm_error tdm_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info); */ +/* tdm_error tdm_hwc_window_set_info() */ TEST_P(TDMHwcWindow, SetInfoFailNull) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_win; + tdm_error error = TDM_ERROR_NONE; tdm_hwc_window_info info = { 0 }; error = tdm_hwc_window_set_info(NULL, &info); ASSERT_NE(TDM_ERROR_NONE, error); - if (hwc_count > 0) { - error = tdm_hwc_window_set_info(hwc_wins[0], NULL); - ASSERT_NE(TDM_ERROR_NONE, error); + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + hwc_win = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_win); + error = tdm_hwc_window_set_info(hwc_win, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hwc_win); + } } } @@ -241,20 +292,30 @@ TEST_P(TDMHwcWindow, SetInfoSuccessful) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_win; + tdm_error error = TDM_ERROR_NONE; tdm_hwc_window_info info = { 0 }; - for (int w = 0; w < hwc_count; w++) { - error = tdm_hwc_window_set_info(hwc_wins[w], &info); - ASSERT_EQ(TDM_ERROR_NONE, error); + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + hwc_win = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_win); + error = tdm_hwc_window_set_info(hwc_win, &info); + ASSERT_NE(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hwc_win); + } } } - -/* tdm_error tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer); */ +/* tdm_error tdm_hwc_window_set_buffer() */ TEST_P(TDMHwcWindow, SetBufferFailNull) { TDM_UT_SKIP_FLAG(has_outputs); + tdm_error error = TDM_ERROR_NONE; + error = tdm_hwc_window_set_buffer(NULL, NULL); ASSERT_NE(TDM_ERROR_NONE, error); } @@ -263,106 +324,116 @@ TEST_P(TDMHwcWindow, SetBufferSuccessful) { TDM_UT_SKIP_FLAG(has_outputs); - for (int w = 0; w < hwc_count; w++) { + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_wins[HWC_WIN_NUM]; + tdm_error error = TDM_ERROR_NONE; + tbm_surface_h buffer = NULL; - tbm_surface_h buff = tbm_surface_create(256, 256, TBM_FORMAT_ARGB8888); - - /* test: set*/ - error = tdm_hwc_window_set_buffer(hwc_wins[w], buff); - tbm_surface_destroy(buff); - ASSERT_EQ(TDM_ERROR_NONE, error); - - /* test: reset*/ - error = tdm_hwc_window_set_buffer(hwc_wins[w], NULL); - ASSERT_EQ(TDM_ERROR_NONE, error); - } -} - -/* tdm_hwc_get_available_properties() */ -/* -TEST_P(TDMHwcWindow, GetAvailablePropertiesFailNullWin) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - TDM_UT_SKIP_FLAG(video_hwc_win != NULL); - const tdm_prop *props; - int count; - - error = tdm_hwc_get_available_properties(NULL, &props, &count); - ASSERT_NE(TDM_ERROR_NONE, error); - - error = tdm_hwc_get_available_properties(video_hwc_win, NULL, &count); - ASSERT_NE(TDM_ERROR_NONE, error); - - error = tdm_hwc_get_available_properties(video_hwc_win, &props, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); -} + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + for (int w = 0; w < HWC_WIN_NUM; w++) { + hwc_wins[w] = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_wins[w]); -TEST_P(TDMHwcWindow, GetAvailablePropertiesSuccess) -{ - TDM_UT_SKIP_FLAG(has_outputs); + buffer = tbm_surface_create(256, 256, TBM_FORMAT_ARGB8888); + ASSERT_NE(NULL, buffer); - TDM_UT_SKIP_FLAG(video_hwc_win != NULL); + error = tdm_hwc_window_set_buffer(hwc_wins[w], buffer); + tbm_surface_destroy(buffer); + ASSERT_EQ(TDM_ERROR_NONE, error); - const tdm_prop *props; - int count; + /* set NULL to the buffer */ + error = tdm_hwc_window_set_buffer(hwc_wins[w], NULL); + ASSERT_EQ(TDM_ERROR_NONE, error); - error = tdm_hwc_get_available_properties(video_hwc_win, &props, &count); - ASSERT_TRUE(TDM_ERROR_NONE == error || TDM_ERROR_NOT_IMPLEMENTED == error); + tdm_hwc_window_destroy(hwc_wins[w]); + } + } + } } -*/ -/* tdm_hwc_window_get_property() */ -TEST_P(TDMHwcWindow, GetPropertyFailNull) +/* tdm_hwc_window_set_property() */ +TEST_P(TDMHwcWindow, SetPropertyFailNull) { TDM_UT_SKIP_FLAG(has_outputs); - TDM_UT_SKIP_FLAG(video_hwc_win != NULL); + tdm_error error = TDM_ERROR_NONE; tdm_value value; int id = 1; - error = tdm_hwc_window_get_property(NULL, id, &value); - ASSERT_NE(TDM_ERROR_NONE, error); - - error = tdm_hwc_window_get_property(video_hwc_win, id, NULL); + error = tdm_hwc_window_set_property(NULL, id, value); ASSERT_NE(TDM_ERROR_NONE, error); } -TEST_P(TDMHwcWindow, GetPropertyFailWrongId) +TEST_P(TDMHwcWindow, SetPropertyFailWrongId) { TDM_UT_SKIP_FLAG(has_outputs); - TDM_UT_SKIP_FLAG(video_hwc_win != NULL); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_win; + tdm_error error = TDM_ERROR_NONE; tdm_value value; int id = INT_MAX; - error = tdm_hwc_window_get_property(video_hwc_win, id, &value); - ASSERT_NE(TDM_ERROR_NONE, error); + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + hwc_win = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_win); + error = tdm_hwc_window_set_property(hwc_win, id, value); + ASSERT_NE(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hwc_win); + } + } } -/* tdm_hwc_window_set_property() */ -TEST_P(TDMHwcWindow, SetPropertyFailNull) +/* tdm_hwc_window_get_property() */ +TEST_P(TDMHwcWindow, GetPropertyFailNull) { TDM_UT_SKIP_FLAG(has_outputs); - TDM_UT_SKIP_FLAG(video_hwc_win != NULL); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_win; + tdm_error error = TDM_ERROR_NONE; tdm_value value; int id = 1; - error = tdm_hwc_window_set_property(NULL, id, value); + error = tdm_hwc_window_get_property(NULL, id, &value); ASSERT_NE(TDM_ERROR_NONE, error); + + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + hwc_win = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_win); + error = tdm_hwc_window_get_property(hwc_win, id, NULL); + ASSERT_NE(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hwc_win); + } + } } -TEST_P(TDMHwcWindow, SetPropertyFailWrongId) +TEST_P(TDMHwcWindow, GetPropertyFailWrongId) { TDM_UT_SKIP_FLAG(has_outputs); - TDM_UT_SKIP_FLAG(video_hwc_win != NULL); + tdm_hwc *hwc = NULL; + tdm_hwc_window *hwc_win; + tdm_error error = TDM_ERROR_NONE; tdm_value value; int id = INT_MAX; - error = tdm_hwc_window_set_property(video_hwc_win, id, value); - ASSERT_NE(TDM_ERROR_NONE, error); + for (int o = 0; o < output_count; o++) { + hwc = tdm_output_get_hwc(hwc, &error); + if (hwc) { + hwc_win = tdm_hwc_create_window(hwc, &error); + ASSERT_NE(NULL, hwc_win); + error = tdm_hwc_window_get_property(hwc_win, id, &value); + ASSERT_NE(TDM_ERROR_NONE, error); + tdm_hwc_window_destroy(hwc_win); + } + } } #ifdef TDM_UT_TEST_WITH_PARAMS diff --git a/haltests/src/tc_tdm_output_hwc.cpp b/haltests/src/tc_tdm_output_hwc.cpp deleted file mode 100644 index 3a6ca4d..0000000 --- a/haltests/src/tc_tdm_output_hwc.cpp +++ /dev/null @@ -1,429 +0,0 @@ -/************************************************************************** - * - * 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 "tc_tdm.h" - -/* LCOV_EXCL_START */ - -class TDMOutputHwc : public TDMOutput -{ -public: - TDMOutputHwc(); - void SetUp(void); - void TearDown(void); - - tdm_error error; -}; - -TDMOutputHwc::TDMOutputHwc() -{ - error = TDM_ERROR_NONE; -} - -void TDMOutputHwc::SetUp(void) -{ - TDMOutput::SetUp(); -} - -void TDMOutputHwc::TearDown(void) -{ - TDMOutput::TearDown(); -} - -/* tdm_hwc_window * tdm_hwc_create_window(tdm_output *output, tdm_error *error); */ -TEST_P(TDMOutputHwc, CreateWindowFailNull) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - ASSERT_EQ(NULL, tdm_hwc_create_window(NULL, &error)); - ASSERT_NE(TDM_ERROR_NONE, error); -} - -/* -TEST_P(TDMOutputHwc, CreateWindowSuccessful) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tdm_hwc_window * hw = NULL; - - for (int o = 0; o < output_count; o++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - hw = tdm_hwc_create_window(hwc[o], &error); - ASSERT_EQ(TDM_ERROR_NONE, error); - tdm_hwc_window_destroy(hw); - } else { - ASSERT_EQ(NULL, tdm_hwc_create_window(outputs[o], &error)); - ASSERT_NE(TDM_ERROR_NONE, error); - } - } -} -*/ - -/* tdm_error tdm_hwc_set_client_target_buffer(tdm_output *output, - tbm_surface_h target_buffer, tdm_region damage, - tdm_hwc_window *composited_wnds, uint32_t num_wnds); */ -/* TDOO: need to be fixed -TEST_P(TDMOutputHwc, SetClientTargetBufferFailNullOutput) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tdm_region reg; - tbm_surface_h target_buff = CreateBufferForOutput(0); - error = tdm_hwc_set_client_target_buffer(NULL, target_buff, reg, NULL, 0 ); - tbm_surface_internal_destroy(target_buff); - ASSERT_NE(TDM_ERROR_NONE, error); -} - -TEST_P(TDMOutputHwc, SetClientTargetBufferFailNoHwc) -{ - tdm_region damage = {.num_rects = 0, .rects = NULL}; - - for (int o = 0; o < output_count; o++) { - tbm_surface_h target_buff = CreateBufferForOutput(i); - ASSERT_NE(NULL, target_buff); - error = tdm_hwc_set_client_target_buffer(outputs[o], target_buff, damage, NULL, 0); - tbm_surface_internal_destroy(target_buff); - ASSERT_NE(TDM_ERROR_NONE, error); - } -} - -TEST_P(TDMOutputHwc, SetClientTargetBufferSuccessfulSetBuff) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tdm_region damage = {.num_rects = 0, .rects = NULL}; - - for (int o = 0; o < output_count; o++) { - tbm_surface_h target_buff = CreateBufferForOutput(i); - ASSERT_NE(NULL, target_buff); - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - error = tdm_hwc_set_client_target_buffer(outputs[o], target_buff, damage, - NULL, 0); - tbm_surface_internal_destroy(target_buff); - ASSERT_EQ(TDM_ERROR_NONE, error); - } else { - error = tdm_hwc_set_client_target_buffer(outputs[o], target_buff, damage, - NULL, 0); - tbm_surface_internal_destroy(target_buff); - ASSERT_NE(TDM_ERROR_NONE, error); - } - } -} - -TEST_P(TDMOutputHwc, SetClientTargetBufferSuccessfulResetBuff) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tdm_region damage = {.num_rects = 0, .rects = NULL}; - - for (int o = 0; o < output_count; o++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - error = tdm_hwc_set_client_target_buffer(outputs[o], NULL, damage, - NULL, 0); - ASSERT_EQ(TDM_ERROR_NONE, error); - } else { - error = tdm_hwc_set_client_target_buffer(outputs[o], NULL, damage, - NULL, 0); - ASSERT_NE(TDM_ERROR_NONE, error); - } - } -} -*/ - -/* tbm_surface_queue_h tdm_hwc_get_client_target_buffer_queue(tdm_output *output, tdm_error *error); */ -/* -TEST_P(TDMOutputHwc, GetTargetBufferQueueFailNullObject) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tbm_surface_queue_h queue = NULL; - - queue = tdm_hwc_get_client_target_buffer_queue(NULL, &error); - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_EQ(NULL, queue); - - queue = tdm_hwc_get_client_target_buffer_queue(NULL, NULL); - ASSERT_EQ(NULL, queue); -} - -TEST_P(TDMOutputHwc, GetTargetBufferQueueFainNoHwc) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tbm_surface_queue_h queue = NULL; - - for (int o = 0; o < output_count; o++) { - queue = tdm_hwc_get_client_target_buffer_queue(outputs[o], &error); - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_EQ(NULL, queue); - } -} -*/ - -TEST_P(TDMOutputHwc, GetTargetBufferQueueSuccessful) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tbm_surface_queue_h queue = NULL; - - for (int o = 0; o < output_count; o++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - queue = tdm_hwc_get_client_target_buffer_queue(outputs[o], &error); - tbm_surface_queue_destroy(queue); - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_NE(NULL, queue); - - queue = tdm_hwc_get_client_target_buffer_queue(outputs[o], NULL); - tbm_surface_queue_destroy(queue); - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_NE(NULL, queue); - } else { - queue = tdm_hwc_get_client_target_buffer_queue(outputs[o], &error); - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_EQ(NULL, queue); - - queue = tdm_hwc_get_client_target_buffer_queue(outputs[o], NULL); - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_EQ(NULL, queue); - } - } -} - -/* tdm_error tdm_hwc_validate(tdm_output *output, tdm_hwc_window **composited_wnds, uint32_t num_wnds, - uint32_t *num_types); */ -/* TODO: fix the validate test later. -TEST_P(TDMOutputHwc, ValidateFailNull) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - uint32_t num_types; - error = tdm_hwc_validate(NULL, NULL, 0, &num_types); - ASSERT_NE(TDM_ERROR_NONE, error); - - if (outputs[0]) { - error = tdm_hwc_validate(outputs[0], NULL, 0, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); - } -} - -TEST_P(TDMOutputHwc, ValidateFailNoHwc) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - uint32_t num_types; - - for (int o = 0; o < output_count; o++) { - error = tdm_hwc_validate(outputs[o], &num_types); - ASSERT_NE(TDM_ERROR_NONE, error); - } -} - -TEST_P(TDMOutputHwc, ValidateSuccessful) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - uint32_t num_types; - for (int o = 0; o < output_count; o++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - error = tdm_hwc_validate(outputs[o], &num_types); - ASSERT_EQ(TDM_ERROR_NONE, error); - } else { - error = tdm_hwc_validate(outputs[o], &num_types); - ASSERT_NE(TDM_ERROR_NONE, error); - } - } -} -TODO: */ - -/* tdm_error tdm_hwc_get_changed_composition_types(tdm_hwc *hwc, - uint32_t *num_elements, tdm_hwc_window **hwc_window, - tdm_hwc_window_composition *composition_types); */ -/* -TEST_P(TDMOutputHwc, GetChangedCompositionTypesFailNull) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - uint32_t num_elements; - - error = tdm_hwc_get_changed_composition_types(NULL, &num_elements, NULL, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); - - if (outputs[0]) { - error = tdm_hwc_get_changed_composition_types(outputs[0], NULL, NULL, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); - } -} - -TEST_P(TDMOutputHwc, GetChangedCompositionTypesFailNoHwc) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - uint32_t get_num = 10; - - for (int o = 0; o < output_count; o++) { - error = tdm_hwc_get_changed_composition_types(outputs[o], &get_num, NULL, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); - } -} -*/ -/* TODO: fix the validate test later. -TEST_P(TDMHwcWindow, GetChangedCompositionTypesSuccessful) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - uint32_t validate_num; - uint32_t get_num = 0; - - tdm_hwc_window_composition *composition_types; - tdm_hwc_window **hwc_wnds; - - for (int i = 0; i < hwc_count; i++) { - error = tdm_hwc_window_set_composition_type(hwc_wins[o], TDM_COMPOSITION_DEVICE); - ASSERT_EQ(TDM_ERROR_NONE, error); - } - - - for (int i = 0; i < output_count; i++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - error = tdm_hwc_validate(outputs[o], &validate_num); - ASSERT_EQ(TDM_ERROR_NONE, error); - - error = tdm_hwc_get_changed_composition_types(outputs[o], &get_num, NULL, NULL); - ASSERT_EQ(TDM_ERROR_NONE, error); - - ASSERT_EQ(get_num, validate_num); - hwc_wnds = (tdm_hwc_window **)calloc(get_num, sizeof(tdm_hwc_window *)); - composition_types = (tdm_hwc_window_composition *)calloc(get_num, sizeof(tdm_hwc_window_composition)); - - error = tdm_hwc_get_changed_composition_types(outputs[o], &get_num, hwc_wnds, composition_types); - - free(hwc_wnds); - free(composition_types); - - ASSERT_EQ(TDM_ERROR_NONE, error); - } else { - error = tdm_hwc_get_changed_composition_types(outputs[o], &get_num, NULL, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); - } - } -} -*/ - -/* tdm_error tdm_hwc_accept_changes(tdm_hwc *hwc); */ -/* -TEST_P(TDMOutputHwc, AcceptChangesFailNull) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - error = tdm_hwc_accept_changes(NULL); - ASSERT_NE(TDM_ERROR_NONE, error); -} - -TEST_P(TDMOutputHwc, AcceptChangesFailNoHwc) -{ - for (int o = 0; o < output_count; o++) { - error = tdm_hwc_accept_changes(outputs[o]); - ASSERT_NE(TDM_ERROR_NONE, error); - } -} -*/ -/* TODO: fix the validate test later. -TEST_P(TDMHwcWindow, AcceptChangesSuccessful) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - uint32_t validate_num; - - for (int i = 0; i < hwc_count; i++) { - error = tdm_hwc_window_set_composition_type(hwc_wins[o], TDM_COMPOSITION_DEVICE); - ASSERT_EQ(TDM_ERROR_NONE, error); - } - - for (int i = 0; i < output_count; i++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - error = tdm_hwc_validate(outputs[o], &validate_num); - ASSERT_EQ(TDM_ERROR_NONE, error); - - if (validate_num > 0) { - error = tdm_hwc_accept_changes(outputs[o]); - ASSERT_EQ(TDM_ERROR_NONE, error); - } - } - } -} -*/ - -/* tdm_hwc_get_supported_formats() */ -/* -TEST_P(TDMOutputHwc, GetVideoSupportedFormatsFailNull) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tdm_error error; - - error = tdm_hwc_get_supported_formats(NULL, NULL, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); -} - -TEST_P(TDMOutputHwc, GetVideoSupportedFormatsSuccessful) -{ - TDM_UT_SKIP_FLAG(has_outputs); - - tdm_error error; - const tbm_format *formats; - int count; - - for (int o = 0; o < output_count; o++) { - if (tc_tdm_output_is_hwc_enable(outputs[o])) { - error = tdm_hwc_get_supported_formats(outputs[o], &formats, &count); - if (error != TDM_ERROR_NOT_IMPLEMENTED) { - ASSERT_EQ(TDM_ERROR_NONE, error); - if (count > 0) - ASSERT_NE(NULL, formats); - } - } else { - error = tdm_hwc_get_supported_formats(outputs[o], &formats, &count); - ASSERT_NE(TDM_ERROR_NONE, error); - } - } -} -*/ - -#ifdef TDM_UT_TEST_WITH_PARAMS -INSTANTIATE_TEST_CASE_P(TDMOutputHwcParams, - TDMOutputHwc, - Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE))); -#else -INSTANTIATE_TEST_CASE_P(TDMOutputHwcParams, - TDMOutputHwc, - Values(TDM_DEFAULT_MODULE)); -#endif - -/* LCOV_EXCL_END */ \ No newline at end of file -- 2.7.4 From a4b8dac3dca041874b9890b7a79d367f100aa79a Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Mon, 25 Jun 2018 15:23:06 +0900 Subject: [PATCH 12/16] vblank: avoid mutex lock error. Change-Id: I4c47966a7b6bb2afab62ed51ed2f06fa097b58c7 Signed-off-by: Junkyeong Kim --- src/tdm_vblank.c | 74 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 31 deletions(-) diff --git a/src/tdm_vblank.c b/src/tdm_vblank.c index b461a5b..568605a 100644 --- a/src/tdm_vblank.c +++ b/src/tdm_vblank.c @@ -450,6 +450,45 @@ _tdm_vblank_cb_output_change(tdm_output *output, tdm_output_change_type type, } /* LCOV_EXCL_STOP */ +static tdm_error +_tdm_vblank_set_fps(tdm_vblank *vblank, unsigned int fps) +{ + tdm_private_vblank *private_vblank = vblank; + + if (private_vblank->fps_fixed) { + VIN("fps(%u) can't be changed", private_vblank->fps); + return TDM_ERROR_NONE; + } + + private_vblank->fps_changeable = 0; + + if (private_vblank->fps == fps) + return TDM_ERROR_NONE; + + private_vblank->fps = fps; + private_vblank->check_HW_or_SW = 1; + + VIN("fps(%u) changed", fps); + + return TDM_ERROR_NONE; +} + +static tdm_error +_tdm_vblank_ignore_global_fps(tdm_vblank *vblank, unsigned int ignore) +{ + tdm_private_vblank *private_vblank = vblank; + + if (private_vblank->ignore_global_fps == ignore) + return TDM_ERROR_NONE; + + private_vblank->ignore_global_fps = ignore; + private_vblank->check_HW_or_SW = 1; + + VIN("ignore_global_fps(%u)", private_vblank->ignore_global_fps); + + return TDM_ERROR_NONE; +} + EXTERN tdm_error tdm_vblank_set_client_vblank_fps(unsigned int pid, const char *name, unsigned int fps) { @@ -483,7 +522,7 @@ tdm_vblank_set_client_vblank_fps(unsigned int pid, const char *name, unsigned in continue; } - ret = tdm_vblank_set_fps(v, fps); + ret = _tdm_vblank_set_fps(v, fps); if (ret == TDM_ERROR_NONE) TDM_INFO("(pid:%u) '%s' fps changed: %d", pid, v->name, fps); else @@ -526,7 +565,7 @@ tdm_vblank_set_client_ignore_global_fps(unsigned int pid, const char *name, unsi continue; } - ret = tdm_vblank_ignore_global_fps(v, ignore); + ret = _tdm_vblank_ignore_global_fps(v, ignore); if (ret == TDM_ERROR_NONE) TDM_INFO("(pid:%u) '%s' ignore changed: %u", pid, v->name, ignore); else @@ -909,27 +948,10 @@ tdm_vblank_get_name(tdm_vblank *vblank, const char **name) EXTERN tdm_error tdm_vblank_set_fps(tdm_vblank *vblank, unsigned int fps) { - tdm_private_vblank *private_vblank = vblank; - TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valid(vblank), TDM_ERROR_INVALID_PARAMETER); TDM_RETURN_VAL_IF_FAIL(fps > 0, TDM_ERROR_INVALID_PARAMETER); - if (private_vblank->fps_fixed) { - VIN("fps(%u) can't be changed", private_vblank->fps); - return TDM_ERROR_NONE; - } - - private_vblank->fps_changeable = 0; - - if (private_vblank->fps == fps) - return TDM_ERROR_NONE; - - private_vblank->fps = fps; - private_vblank->check_HW_or_SW = 1; - - VIN("fps(%u) changed", fps); - - return TDM_ERROR_NONE; + return _tdm_vblank_set_fps(vblank, fps); } EXTERN tdm_error @@ -970,19 +992,9 @@ tdm_vblank_set_fixed_fps(tdm_vblank *vblank, unsigned int fps) EXTERN tdm_error tdm_vblank_ignore_global_fps(tdm_vblank *vblank, unsigned int ignore) { - tdm_private_vblank *private_vblank = vblank; - TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valid(vblank), TDM_ERROR_INVALID_PARAMETER); - if (private_vblank->ignore_global_fps == ignore) - return TDM_ERROR_NONE; - - private_vblank->ignore_global_fps = ignore; - private_vblank->check_HW_or_SW = 1; - - VIN("ignore_global_fps(%u)", private_vblank->ignore_global_fps); - - return TDM_ERROR_NONE; + return _tdm_vblank_ignore_global_fps(vblank, ignore); } EXTERN tdm_error -- 2.7.4 From 9ee614f0bb439952510a6b58b119f0da04772b04 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Wed, 27 Jun 2018 19:23:33 +0900 Subject: [PATCH 13/16] tdm_client: Introduce header of tdm_virtual_output. Change-Id: I6365c41f02a015f31f9e19f8c3379a902181df55 --- client/tdm_client.h | 37 +++++++++++++++++++++++++++++++++++++ client/tdm_client_types.h | 15 +++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/client/tdm_client.h b/client/tdm_client.h index a13bf2a..4ffe435 100644 --- a/client/tdm_client.h +++ b/client/tdm_client.h @@ -429,6 +429,43 @@ tdm_client_vblank_wait_seq(tdm_client_vblank *vblank, unsigned int sequence, tdm unsigned int tdm_client_vblank_is_waiting(tdm_client_vblank *vblank); +/* Virtual Output */ +#include + +tdm_client_voutput * +tdm_client_create_voutput(tdm_client *client, const char *name, tdm_error *error); + +void +tdm_client_voutput_destroy(tdm_client_voutput *voutput); + +tdm_error +tdm_client_voutput_set_available_modes(tdm_client_voutput *voutput, const tdm_client_output_mode *modes, int count); + +tdm_error +tdm_client_voutput_set_physical_size(tdm_client_voutput *voutput, int mmWidth, int mmHeight); + +tdm_error +tdm_client_voutput_add_commit_handler(tdm_client_voutput *voutput, tdm_client_voutput_commit_handler *func); + +tdm_error +tdm_client_voutput_get_committed_tbm_surface(tdm_client_voutput *voutput, tbm_surface_h surface); + +tdm_client_output * +tdm_client_voutput_get_client_output(tdm_client_voutput *voutput, tdm_error *error); + +tdm_error +tdm_client_output_get_available_modes(tdm_client_output *output, tdm_client_output_mode **modes, int *count); + +tdm_error +tdm_client_output_set_mode(tdm_client_output *output, const tdm_client_output_mode *mode); + +tdm_error +tdm_client_output_connect(tdm_client_output *output); + +tdm_error +tdm_client_output_disconnect(tdm_client_output *output); +/* End of Virtual Output */ + #ifdef __cplusplus } #endif diff --git a/client/tdm_client_types.h b/client/tdm_client_types.h index bd7e8a5..cb4e96d 100644 --- a/client/tdm_client_types.h +++ b/client/tdm_client_types.h @@ -109,6 +109,21 @@ typedef void unsigned int tv_usec, void *user_data); +/* Virtual Output */ +typedef struct _tdm_client_output_mode { + char name[TDM_NAME_LEN]; /**< The output name */ + unsigned int mode_count; /**< The count of available modes */ + unsigned int prop_count; /**< The count of available properties */ + unsigned int mmWidth; /**< The physical width (milimeter) */ + unsigned int mmHeight; /**< The physical height (milimeter) */ + unsigned int subpixel; /**< The subpixel */ +} tdm_client_output_mode; + +typedef void tdm_client_voutput; + +typedef void (*tdm_client_voutput_commit_handler)(tdm_client_voutput *voutput, + void *user_data); +/* End of Virtual Output */ #ifdef __cplusplus } #endif -- 2.7.4 From 385484a21dcc7b743d2f3887c1d14ded4be64aab Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 17 Jul 2018 17:23:31 +0900 Subject: [PATCH 14/16] virtual output: Add implementation for client and test case for virtual output. - Added implementation for creation of virtual output. - Added definition for the rest of client's api of virtual output. - Added TC for client's Virtual Output API. Change-Id: Ic6959e852ec12fed4c8f7ba77c4cf3a360ce855a --- client/tdm_client.c | 227 +++++++++++++++++++++++++++++++++++++++++ haltests/src/tc_tdm_client.cpp | 210 +++++++++++++++++++++++++++++++++++++- protocol/tdm.xml | 21 ++++ src/tdm_server.c | 22 ++++ 4 files changed, 479 insertions(+), 1 deletion(-) diff --git a/client/tdm_client.c b/client/tdm_client.c index 4023208..8d17c94 100644 --- a/client/tdm_client.c +++ b/client/tdm_client.c @@ -89,6 +89,12 @@ typedef struct _tdm_private_client_output { struct list_head link; } tdm_private_client_output; +typedef struct _tdm_private_client_voutput { + tdm_private_client_output base; + struct wl_tdm_voutput *wl_voutput; + uint32_t msg; +} tdm_private_client_voutput; + struct _tdm_private_client_vblank { tdm_private_client_output *private_output; @@ -1591,3 +1597,224 @@ tdm_client_vblank_is_waiting(tdm_client_vblank *vblank) return (LIST_LENGTH(&private_vblank->wait_list) > 0) ? 1 : 0; } + +void +tdm_client_voutput_cb_ack_message(void *data, struct wl_tdm_voutput *wl_voutput, uint32_t msg) +{ + tdm_private_client_voutput *private_voutput = data; + + private_voutput->msg = msg; +} + +static const struct wl_tdm_voutput_listener tdm_client_voutput_lisntener = { + tdm_client_voutput_cb_ack_message +}; + +tdm_client_voutput * +tdm_client_create_voutput(tdm_client *client, const char *name, tdm_error *error) +{ + tdm_private_client *private_client; + tdm_private_client_output *private_output; + tdm_private_client_voutput *private_voutput; + struct wl_proxy *wrapper; + + if (error) + *error = TDM_ERROR_NONE; + + if (!client) { + TDM_ERR("'!client' failed"); + if (error) + *error = TDM_ERROR_INVALID_PARAMETER; + return NULL; + } + + if (!name) { + TDM_ERR("'!name' failed"); + if (error) + *error = TDM_ERROR_INVALID_PARAMETER; + return NULL; + } + + private_client = (tdm_private_client *)client; + + pthread_mutex_lock(&private_client->lock); + + if (CHECK_WL_PROTOCOL_ERROR(private_client)) { + if (error) + *error = TDM_ERROR_PROTOCOL_ERROR; + pthread_mutex_unlock(&private_client->lock); + return NULL; + } + + LIST_FOR_EACH_ENTRY(private_output, &private_client->output_list, link) { + if (!strncmp(private_output->name, name, TDM_NAME_LEN)) { + if (error) + *error = TDM_ERROR_INVALID_PARAMETER; // FIXME define new error type. + pthread_mutex_unlock(&private_client->lock); + return NULL; + } + } + + wrapper = wl_proxy_create_wrapper(private_client->tdm); + if (!wrapper) { + TDM_ERR("create virtual output wrapper failed"); + if (error) + *error = TDM_ERROR_OUT_OF_MEMORY; + pthread_mutex_unlock(&private_client->lock); + return NULL; + } + + wl_proxy_set_queue(wrapper, private_client->queue); + + private_voutput = calloc(1, sizeof *private_voutput); + if (!private_voutput) { + /* LOCV_EXCL_START */ + wl_proxy_wrapper_destroy(wrapper); + TDM_ERR("alloc failed"); + if (error) + *error = TDM_ERROR_OUT_OF_MEMORY; + return NULL; + /* LOCV_EXCL_STOP */ + } + + private_voutput->base.private_client = private_client; + + snprintf(private_voutput->base.name, TDM_NAME_LEN, "%s", name); + private_voutput->wl_voutput = wl_tdm_create_voutput((struct wl_tdm *)wrapper, private_voutput->base.name); + wl_proxy_wrapper_destroy(wrapper); + if (!private_voutput->wl_voutput) { + /* LCOV_EXCL_START */ + TDM_ERR("couldn't create voutput resource"); + free(private_voutput); + if (error) + *error = TDM_ERROR_OUT_OF_MEMORY; + pthread_mutex_unlock(&private_client->lock); + return NULL; + /* LCOV_EXCL_STOP */ + } + + wl_tdm_voutput_add_listener(private_voutput->wl_voutput, + &tdm_client_voutput_lisntener, private_voutput); + wl_display_roundtrip_queue(private_client->display, private_client->queue); + + wl_proxy_set_queue((struct wl_proxy *)private_voutput->wl_voutput, NULL); + + if (CHECK_WL_PROTOCOL_ERROR(private_client)) { + wl_tdm_voutput_destroy(private_voutput->wl_voutput); + free(private_voutput); + if (error) + *error = TDM_ERROR_PROTOCOL_ERROR; + pthread_mutex_unlock(&private_client->lock); + return NULL; + } + + if (private_voutput->msg != WL_TDM_VOUTPUT_MESSAGE_ADDED) + { + wl_tdm_voutput_destroy(private_voutput->wl_voutput); + free(private_voutput); + if (error) + *error = TDM_ERROR_PROTOCOL_ERROR; // FIXME add new error type. + pthread_mutex_unlock(&private_client->lock); + return NULL; + } + + pthread_mutex_unlock(&private_client->lock); + + return (tdm_client_voutput *)private_voutput; +} + +void +tdm_client_voutput_destroy(tdm_client_voutput *voutput) +{ + tdm_private_client_voutput *private_voutput = (tdm_private_client_voutput *)voutput; + + if (!private_voutput) + return; + + free(private_voutput); +} + +tdm_error +tdm_client_voutput_set_available_modes(tdm_client_voutput *voutput, const tdm_client_output_mode *modes, int count) +{ + TDM_RETURN_VAL_IF_FAIL(voutput != NULL, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(modes != NULL, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(count > 0, TDM_ERROR_INVALID_PARAMETER); + + return TDM_ERROR_NONE; +} + +tdm_error +tdm_client_voutput_set_physical_size(tdm_client_voutput *voutput, int mmWidth, int mmHeight) +{ + TDM_RETURN_VAL_IF_FAIL(voutput != NULL, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(mmWidth > 0, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(mmHeight > 0, TDM_ERROR_INVALID_PARAMETER); + + return TDM_ERROR_NONE; +} + +tdm_client_output * +tdm_client_voutput_get_client_output(tdm_client_voutput *voutput, tdm_error *error) +{ + tdm_private_client_voutput *private_voutput; + + if (error) + *error = TDM_ERROR_NONE; + + if (!voutput) + { + TDM_ERR("'!voutput' failed"); + if (error) + *error = TDM_ERROR_INVALID_PARAMETER; + return NULL; + } + + private_voutput = (tdm_private_client_voutput *)voutput; + + return &private_voutput->base; +} + +tdm_error +tdm_client_output_set_buffer_queue(tdm_client_output *output, void *queue, void *func) +{ + TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(queue != NULL, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(func != NULL, TDM_ERROR_INVALID_PARAMETER); + + return TDM_ERROR_NONE; +} + +tdm_error +tdm_client_output_get_available_modes(tdm_client_output *output, tdm_client_output_mode **modes, int *count) +{ + TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(modes != NULL, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(count != NULL, TDM_ERROR_INVALID_PARAMETER); + + return TDM_ERROR_NONE; +} + +tdm_error +tdm_client_output_set_mode(tdm_client_output *output, const tdm_client_output_mode *mode) +{ + TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(mode != NULL, TDM_ERROR_INVALID_PARAMETER); + + return TDM_ERROR_NONE; +} + +tdm_error +tdm_client_output_connect(tdm_client_output *output) +{ + TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_INVALID_PARAMETER); + + return TDM_ERROR_NONE; +} + +tdm_error +tdm_client_output_disconnect(tdm_client_output *output) +{ + TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_INVALID_PARAMETER); + return TDM_ERROR_NONE; +} diff --git a/haltests/src/tc_tdm_client.cpp b/haltests/src/tc_tdm_client.cpp index 10e122d..20aa27f 100644 --- a/haltests/src/tc_tdm_client.cpp +++ b/haltests/src/tc_tdm_client.cpp @@ -66,6 +66,7 @@ public: tdm_client *client; tdm_client_output *output; tdm_client_vblank *vblank; + tdm_client_voutput *voutput; double vrefresh_interval, start, end; @@ -1358,6 +1359,213 @@ TEST_P(TDMClient, ClientVblankIsWaitingNullObject) ASSERT_EQ(waiting, 0); } +TEST_P(TDMClient, ClientCreateVOutput) +{ + tdm_error ret; + const char name[TDM_NAME_LEN] = "Virtual Output"; + + ASSERT_EQ(PrepareClient(), true); + + voutput = tdm_client_create_voutput(client, name, &ret); + ASSERT_EQ(ret, TDM_ERROR_NONE); + ASSERT_NE(voutput, NULL); + + tdm_client_voutput_destroy(voutput); +} + +class TDMVirtualOutput : public ::testing::Test +{ +public: + TDMVirtualOutput() {}; + ~TDMVirtualOutput() {}; + + static void SetUpTestCase(); + static void TearDownTestCase(); + static bool PrepareVOutput(void); + +protected: + static tdm_client *client; + static tdm_client_voutput *voutput; + const int MODE_COUNT = 1; + +private: + static pid_t server_pid; + + /* 0: read, 1: write */ + static int pipe_parent[2]; + static int pipe_child[2]; + + static void ServerFork(void); + static void ServerKill(void); +}; + +pid_t TDMVirtualOutput::server_pid = -1; +int TDMVirtualOutput::pipe_parent[2] = {-1, -1}; +int TDMVirtualOutput::pipe_child[2] = {-1, -1}; +tdm_client* TDMVirtualOutput::client = nullptr; +tdm_client_voutput* TDMVirtualOutput::voutput = nullptr; + +void TDMVirtualOutput::ServerKill(void) +{ + if (pipe_child[0] >= 0) + close(pipe_child[0]); + if (pipe_child[1] >= 0) { + if (server_pid > 0) { + bool ret = _tc_tdm_pipe_write_msg(pipe_child[1], pipe_parent[0], TDM_UT_PIPE_MSG_TERMINATE_SERVER); + if (ret) { + if (waitpid(server_pid, NULL, 0) == server_pid) + TDM_INFO("*** server terminated ***"); + else + TDM_ERR("*** failed to terminate server ***"); + } else { + if (kill(server_pid, 9) < 0) + TDM_ERR("*** failed to kill server ***"); + } + } + close(pipe_child[1]); + } + + if (pipe_parent[0] >= 0) + close(pipe_parent[0]); + if (pipe_parent[1] >= 0) + close(pipe_parent[1]); + + server_pid = -1; + pipe_parent[0] = pipe_parent[1] = -1; + pipe_child[0] = pipe_child[1] = -1; +} + +void TDMVirtualOutput::ServerFork(void) +{ + if (server_pid > 0) + return; + + server_pid = _tc_tdm_client_server_fork(pipe_parent, pipe_child); + ASSERT_GT(server_pid, 0); +} + +void TDMVirtualOutput::SetUpTestCase(void) +{ + setenv("XDG_RUNTIME_DIR", "/run", 1); + setenv("TBM_DISPLAY_SERVER", "1", 1); + + if (server_pid == -1) + ServerFork(); + + ASSERT_EQ(PrepareVOutput(), true); +} + +void TDMVirtualOutput::TearDownTestCase(void) +{ + if (voutput) + tdm_client_voutput_destroy(voutput); + + if (client) + tdm_client_destroy(client); + + ServerKill(); + + unsetenv("XDG_RUNTIME_DIR"); + unsetenv("TBM_DISPLAY_SERVER"); +} + +bool TDMVirtualOutput::PrepareVOutput(void) +{ + tdm_error ret; + const char name[TDM_NAME_LEN] = "Virtual Output"; + + client = tdm_client_create(&ret); + TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE); + TDM_UT_RETURN_FALSE_IF_FAIL(client != NULL); + + voutput = tdm_client_create_voutput(client, name, &ret); + TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE); + TDM_UT_RETURN_FALSE_IF_FAIL(voutput != NULL); + return true; +} + +TEST_F(TDMVirtualOutput, SetAvailableModes) +{ + tdm_error ret; + tdm_client_output_mode modes[this->MODE_COUNT]; + int i, count = this->MODE_COUNT; + + for (i = 0; i < count; i++) + { + modes[i].mmHeight = 1234; + modes[i].mmWidth = 1234; + modes[i].mode_count = 0; + modes[i].prop_count = 0; + modes[i].subpixel = 0; + snprintf(modes[i].name, TDM_NAME_LEN, "TestModeSetting"); + } + + ret = tdm_client_voutput_set_available_modes(this->voutput, modes, count); + ASSERT_EQ(ret, TDM_ERROR_NONE); +} + +TEST_F(TDMVirtualOutput, FailTestSetAvailableModes) +{ + tdm_error ret; + tdm_client_output_mode modes[this->MODE_COUNT]; + int count = this->MODE_COUNT; + + ret = tdm_client_voutput_set_available_modes(NULL, modes, count); + ASSERT_EQ(ret, TDM_ERROR_INVALID_PARAMETER); + + ret = tdm_client_voutput_set_available_modes(this->voutput, NULL, count); + ASSERT_EQ(ret, TDM_ERROR_INVALID_PARAMETER); + + ret = tdm_client_voutput_set_available_modes(this->voutput, modes, 0); + ASSERT_EQ(ret, TDM_ERROR_INVALID_PARAMETER); +} + +TEST_F(TDMVirtualOutput, SetPhysicalSize) +{ + tdm_error ret; + int mmWidth = 1234, mmHeight = 1234; + + ret = tdm_client_voutput_set_physical_size(this->voutput, mmWidth, mmHeight); + ASSERT_EQ(ret, TDM_ERROR_NONE); +} + +TEST_F(TDMVirtualOutput, FailTestSetPhysicalSize) +{ + tdm_error ret; + int invalid_mmWidth = -1, invalid_mmHeight = -1; + + ret = tdm_client_voutput_set_physical_size(this->voutput, invalid_mmWidth, invalid_mmHeight); + ASSERT_EQ(ret, TDM_ERROR_INVALID_PARAMETER); +} + +TEST_F(TDMVirtualOutput, GetClientOutput) +{ + tdm_error ret; + tdm_client_output *output; + + output = tdm_client_voutput_get_client_output(this->voutput, &ret); + ASSERT_EQ(ret, TDM_ERROR_NONE); + ASSERT_NE(output, NULL); +} + +#if 0 +TEST_F(TDMVirtualOutput, FailTestGetClientOutput) +{ + tdm_error ret; +} + +TEST_F(TDMVirtualOutput, SetBufferQueue) +{ + tdm_error ret; +} + +TEST_F(TDMVirtualOutput, FailTestSetBufferQueue) +{ + tdm_error ret; +} + +#endif + #ifdef TDM_UT_TEST_WITH_PARAMS INSTANTIATE_TEST_CASE_P(TDMClientParams, TDMClient, @@ -1368,4 +1576,4 @@ INSTANTIATE_TEST_CASE_P(TDMClientParams, Values(TDM_DEFAULT_MODULE)); #endif -/* LCOV_EXCL_END */ \ No newline at end of file +/* LCOV_EXCL_END */ diff --git a/protocol/tdm.xml b/protocol/tdm.xml index 6434e98..58422cf 100644 --- a/protocol/tdm.xml +++ b/protocol/tdm.xml @@ -23,6 +23,11 @@ + + + + + @@ -66,6 +71,22 @@ + + + + + + + + + + + + + + + + diff --git a/src/tdm_server.c b/src/tdm_server.c index 30bb475..d77151c 100644 --- a/src/tdm_server.c +++ b/src/tdm_server.c @@ -682,6 +682,27 @@ _tdm_server_cb_create_output(struct wl_client *client, struct wl_resource *resou } } +static void +_tdm_server_cb_create_virtual_output(struct wl_client *client, struct wl_resource *resource, const char *name, uint32_t id) +{ + struct wl_resource *voutput_resource = NULL; + + voutput_resource = + wl_resource_create(client, &wl_tdm_voutput_interface, + wl_resource_get_version(resource), id); + if (!voutput_resource) { + /* LCOV_EXCL_START */ + + wl_resource_post_no_memory(resource); + TDM_ERR("wl_resource_create failed"); + return; + + /* LCOV_EXCL_STOP */ + } + + wl_tdm_voutput_send_ack_message(voutput_resource, WL_TDM_VOUTPUT_MESSAGE_ADDED); +} + /* LCOV_EXCL_START */ static void _tdm_server_cb_debug(struct wl_client *client, struct wl_resource *resource, const char *options) @@ -727,6 +748,7 @@ _tdm_server_cb_debug(struct wl_client *client, struct wl_resource *resource, con static const struct wl_tdm_interface tdm_implementation = { _tdm_server_cb_debug, _tdm_server_cb_create_output, + _tdm_server_cb_create_virtual_output }; static void -- 2.7.4 From e1484d5a3d75564e15a09d9321eb132393d890ce Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 9 Apr 2018 21:34:02 +0900 Subject: [PATCH 15/16] implementation Change-Id: I6600b589fb140b2ff5a5c5258f4ddf9bcab89e87 Signed-off-by: Junkyeong Kim --- backends/dummy/tdm_dummy_display.c | 2 +- src/tdm.c | 177 +++++++++++++++++++++++++++---------- src/tdm_backend.c | 47 ++++++++++ src/tdm_display.c | 123 ++++++++++++++++++++++++++ src/tdm_event_loop.c | 4 + src/tdm_helper.c | 4 + src/tdm_layer.c | 14 +++ src/tdm_macro.h | 2 + src/tdm_output.c | 125 +++++++++++++++++++++++++- src/tdm_private.h | 17 +++- src/tdm_private_types.h | 39 ++++++++ src/tdm_thread.c | 2 + 12 files changed, 506 insertions(+), 50 deletions(-) diff --git a/backends/dummy/tdm_dummy_display.c b/backends/dummy/tdm_dummy_display.c index a43c8c9..a3d9d2d 100644 --- a/backends/dummy/tdm_dummy_display.c +++ b/backends/dummy/tdm_dummy_display.c @@ -233,7 +233,7 @@ tdm_dummy_display_create_output_list(tdm_dummy_data *dummy_data) output_data->dummy_data = dummy_data; output_data->pipe = 0; output_data->connector_type = TDM_OUTPUT_TYPE_Unknown; - output_data->status = TDM_OUTPUT_CONN_STATUS_CONNECTED; + output_data->status = TDM_OUTPUT_CONN_STATUS_DISCONNECTED; output_data->output_mode = calloc(1, sizeof(tdm_output_mode)); if (!output_data->output_mode) { diff --git a/src/tdm.c b/src/tdm.c index 6f938ec..3bbd6c3 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -50,6 +50,8 @@ pthread_mutex_t tdm_debug_mutex_check_lock = PTHREAD_MUTEX_INITIALIZER; const char *tdm_debug_mutex_lock_func; int tdm_debug_mutex_lock_line; +static tdm_error _tdm_display_load_module_with_file(tdm_private_display *private_display, const char *file); + /* LCOV_EXCL_START */ static tdm_private_layer * _tdm_display_find_private_layer(tdm_private_output *private_output, @@ -81,6 +83,34 @@ tdm_display_find_private_output(tdm_private_display *private_display, tdm_output return NULL; } +INTERN unsigned int +tdm_display_find_empty_output_pipe(tdm_private_display *private_display) +{ + tdm_private_module *private_module = NULL; + tdm_private_output *private_output = NULL; + unsigned int pipe = 0; + while(1) { + int found = 0; + LIST_FOR_EACH_ENTRY(private_module, &private_display->module_list, link) { + LIST_FOR_EACH_ENTRY(private_output, &private_module->output_list, link) { + if (private_output->pipe == pipe) { + found = 1; + break; + } + } + if (found) + break; + } + + if (!found) + break; + else + pipe++; + } + + return pipe; +} + INTERN void * tdm_display_find_output_stamp(tdm_private_display *private_display, double stamp) { @@ -197,8 +227,8 @@ _tdm_display_destroy_private_layer(tdm_private_layer *private_layer) free(private_layer); } -static void -_tdm_display_destroy_private_output(tdm_private_output *private_output) +INTERN void +tdm_display_destroy_private_output(tdm_private_output *private_output) { tdm_private_display *private_display = private_output->private_display; tdm_private_layer *l = NULL, *ll = NULL; @@ -210,6 +240,11 @@ _tdm_display_destroy_private_output(tdm_private_output *private_output) tdm_private_hwc_commit_handler *hm = NULL, *hmm = NULL; tdm_private_layer_commit_handler *lm = NULL, *lmm = NULL; tdm_private_output_change_handler *h = NULL, *hh = NULL; + tdm_private_output_destroy_handler *dh = NULL, *dhh = NULL; + tdm_error ret; + + ret = tdm_output_call_thread_cb_destroy(private_output); + TDM_WARNING_IF_FAIL(ret == TDM_ERROR_NONE); free(private_output->layers_ptr); @@ -251,6 +286,12 @@ _tdm_display_destroy_private_output(tdm_private_output *private_output) free(h); } + LIST_FOR_EACH_ENTRY_SAFE(dh, dhh, &private_output->destroy_handler_list, link) { + LIST_DEL(&dh->link); + tdm_thread_cb_remove(dh->private_output, TDM_THREAD_CB_OUTPUT_DESTROY, NULL, tdm_output_thread_cb_destroy, dh); + free(dh); + } + if (private_output->vblank) { /* tdm_vblank APIs is for server. it should be called in unlock status*/ _pthread_mutex_unlock(&private_display->lock); @@ -295,6 +336,7 @@ _tdm_display_destroy_private_display(tdm_private_display *private_display) tdm_private_module *private_module = NULL, *bb = NULL; tdm_private_output *o = NULL, *oo = NULL; tdm_private_pp *p = NULL, *pp = NULL; + tdm_private_output_create_handler *ch = NULL, *chh = NULL; LIST_FOR_EACH_ENTRY_SAFE(private_module, bb, &private_display->module_list, link) { LIST_FOR_EACH_ENTRY_SAFE(p, pp, &private_module->pp_list, link) { @@ -302,7 +344,7 @@ _tdm_display_destroy_private_display(tdm_private_display *private_display) } LIST_FOR_EACH_ENTRY_SAFE(o, oo, &private_module->output_list, link) { - _tdm_display_destroy_private_output(o); + tdm_display_destroy_private_output(o); } _tdm_display_destroy_caps_pp(&private_module->caps_pp); @@ -316,6 +358,13 @@ _tdm_display_destroy_private_display(tdm_private_display *private_display) private_module->outputs = NULL; } } + + LIST_FOR_EACH_ENTRY_SAFE(ch, chh, &private_display->output_create_handler_list, link) { + LIST_DEL(&ch->link); + tdm_thread_cb_remove(ch->private_display, TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE, NULL, + tdm_display_thread_cb_output_create, ch); + free(ch); + } } static tdm_error @@ -392,11 +441,6 @@ _tdm_display_update_caps_output(tdm_private_module *private_module, int pipe, tdm_error ret; double stamp; - if (!func_output->output_get_capability) { - TDM_ERR("backend(%s) no output_get_capability()", private_module->module_data->name); - return TDM_ERROR_BAD_MODULE; - } - stamp = tdm_helper_get_time(); ret = func_output->output_get_capability(output_backend, caps); TDM_DBG("backend(%s) backend output_get_capability() time: %.3f ms", @@ -446,30 +490,35 @@ _tdm_display_update_layer(tdm_private_output *private_output, } INTERN tdm_error -tdm_display_update_output(tdm_private_module *private_module, - tdm_output *output_backend, int pipe, unsigned int need_new_caps) +tdm_display_update_output(tdm_private_module *private_module, tdm_output *output_backend) { tdm_func_output *func_output = &private_module->func_output; + tdm_private_display *private_display = NULL; tdm_private_output *private_output = NULL; tdm_layer **layers = NULL; tdm_private_hwc *private_hwc = NULL; tdm_hwc *hwc; int layer_count = 0, i; tdm_error ret; + unsigned int output_created = 0; + + private_display = private_module->private_display; - private_output = tdm_display_find_private_output(private_module->private_display, output_backend); + private_output = tdm_display_find_private_output(private_display, output_backend); if (!private_output) { + unsigned int pipe = tdm_display_find_empty_output_pipe(private_display); + private_output = calloc(1, sizeof(tdm_private_output)); TDM_RETURN_VAL_IF_FAIL(private_output != NULL, TDM_ERROR_OUT_OF_MEMORY); private_output->stamp = tdm_helper_get_time(); - while (tdm_display_find_output_stamp(private_module->private_display, private_output->stamp)) + while (tdm_display_find_output_stamp(private_display, private_output->stamp)) private_output->stamp++; LIST_ADDTAIL(&private_output->link, &private_module->output_list); private_output->private_module = private_module; - private_output->private_display = private_module->private_display; + private_output->private_display = private_display; private_output->current_dpms_value = TDM_OUTPUT_DPMS_OFF; private_output->output_backend = output_backend; private_output->pipe = pipe; @@ -479,6 +528,7 @@ tdm_display_update_output(tdm_private_module *private_module, LIST_INITHEAD(&private_output->vblank_handler_list); LIST_INITHEAD(&private_output->output_commit_handler_list); LIST_INITHEAD(&private_output->pending_commit_handler_list); + LIST_INITHEAD(&private_output->destroy_handler_list); LIST_INITHEAD(&private_output->change_handler_list); if (func_output->output_set_status_handler) { @@ -488,7 +538,11 @@ tdm_display_update_output(tdm_private_module *private_module, private_output->regist_change_cb = 1; } - ret = _tdm_display_update_caps_output(private_module, pipe, output_backend, &private_output->caps); + output_created = 1; + + /* NOTE that output modes will be allocated newly after here */ + _tdm_display_destroy_caps_output(&private_output->caps); + ret = _tdm_display_update_caps_output(private_module, private_output->pipe, output_backend, &private_output->caps); TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, ret); if (private_output->caps.status == TDM_OUTPUT_CONN_STATUS_DISCONNECTED) @@ -519,18 +573,12 @@ tdm_display_update_output(tdm_private_module *private_module, LIST_INITHEAD(&private_output->layer_commit_handler_list); } } else { - /* need_new_caps will be true only in case of "disconnected -> connected" and "connected -> disconnected" - * because we have to get new modes. - */ - if (need_new_caps) { - _tdm_display_destroy_caps_output(&private_output->caps); - - ret = _tdm_display_update_caps_output(private_module, pipe, output_backend, &private_output->caps); - TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, ret); + _tdm_display_destroy_caps_output(&private_output->caps); + ret = _tdm_display_update_caps_output(private_module, private_output->pipe, output_backend, &private_output->caps); + TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, ret); - if (private_output->caps.status == TDM_OUTPUT_CONN_STATUS_DISCONNECTED) - private_output->current_mode = NULL; - } + if (private_output->caps.status == TDM_OUTPUT_CONN_STATUS_DISCONNECTED) + private_output->current_mode = NULL; } /* do not use the layer object when the tdm_output has the hwc capability */ @@ -552,6 +600,11 @@ tdm_display_update_output(tdm_private_module *private_module, free(layers); } + if (output_created) { + ret = tdm_display_call_thread_cb_output_create(private_display, private_output); + TDM_WARNING_IF_FAIL(ret == TDM_ERROR_NONE); + } + return TDM_ERROR_NONE; } @@ -589,12 +642,12 @@ _tdm_display_get_ordered_outputs(tdm_private_module *private_module, int *count) outputs = func_display->display_get_outputs(private_module->bdata, &output_count, &ret); if (ret != TDM_ERROR_NONE) - goto failed_get_outputs; + goto no_output; *count = output_count; if (output_count == 0) - goto failed_get_outputs; + goto no_output; else if (output_count == 1) { private_module->outputs = outputs; return outputs; @@ -609,7 +662,7 @@ _tdm_display_get_ordered_outputs(tdm_private_module *private_module, int *count) ret = func_output->output_get_capability(outputs[i], &caps); if (ret != TDM_ERROR_NONE) { TDM_ERR("output_get_capability() failed"); - goto failed_get_outputs; + goto no_output; } if (caps.status == TDM_OUTPUT_CONN_STATUS_CONNECTED) { @@ -673,7 +726,7 @@ _tdm_display_get_ordered_outputs(tdm_private_module *private_module, int *count) return outputs; -failed_get_outputs: +no_output: free(outputs); *count = 0; return NULL; @@ -684,7 +737,7 @@ _tdm_display_setup(tdm_private_display *private_display) { tdm_private_module *private_module = NULL; tdm_error ret = TDM_ERROR_NONE; - int index = 0; + int output_count = 0; if (private_display->pp_module) { ret = _tdm_display_update_caps_pp(private_display->pp_module, @@ -702,14 +755,43 @@ _tdm_display_setup(tdm_private_display *private_display) LIST_FOR_EACH_ENTRY(private_module, &private_display->module_list, link) { tdm_output **outputs; - int output_count = 0, i; + int i, count = 0; - outputs = _tdm_display_get_ordered_outputs(private_module, &output_count); - if (!outputs) - goto failed_update; + outputs = _tdm_display_get_ordered_outputs(private_module, &count); + + if (count > 0) + TDM_GOTO_IF_FAIL(outputs != NULL, failed_update); + + for (i = 0; i < count; i++) { + ret = tdm_display_update_output(private_module, outputs[i]); + if (ret != TDM_ERROR_NONE) + goto failed_update; + output_count++; + } + } + + /* At least, the output count should be greater than 0 to ensure tdm_vblank works. + * So we will create a dummy output when backends don't have any output. + * Without destroying a tdm_output object, this dummy output will be replaced with + * a virtual output which is created in runtime. + */ + if (output_count == 0) { + tdm_output **outputs; + int i, count = 0; + + TDM_INFO("loading a %s backend", TDM_DUMMY_MODULE); + ret = _tdm_display_load_module_with_file(private_display, TDM_DUMMY_MODULE); + TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, failed_update); + TDM_GOTO_IF_FAIL(private_display->dummy_module != NULL, failed_update); + + private_module = private_display->dummy_module; - for (i = 0; i < output_count; i++) { - ret = tdm_display_update_output(private_module, outputs[i], index++, 1); + outputs = _tdm_display_get_ordered_outputs(private_module, &count); + TDM_GOTO_IF_FAIL(count > 0, failed_update); + TDM_GOTO_IF_FAIL(outputs != NULL, failed_update); + + for (i = 0; i < count; i++) { + ret = tdm_display_update_output(private_module, outputs[i]); if (ret != TDM_ERROR_NONE) goto failed_update; } @@ -925,6 +1007,9 @@ _tdm_display_load_module_with_file(tdm_private_display *private_display, private_display->current_module = NULL; + if (!strncmp(file, TDM_DUMMY_MODULE, TDM_NAME_LEN)) + private_display->dummy_module = private_module; + private_module->bdata = bdata; if (ret != TDM_ERROR_NONE) { @@ -983,16 +1068,6 @@ _tdm_display_load_modules(tdm_private_display *private_display) arg = strtok_r(NULL, TDM_CONFIG_DELIM, &end); } - /* load bufmgr priv from dummy lib */ - if (LIST_IS_EMPTY(&private_display->module_list)) { - TDM_WRN("No backend. loading a %s backend", TDM_DUMMY_MODULE); - ret = _tdm_display_load_module_with_file(private_display, TDM_DUMMY_MODULE); - if (ret == TDM_ERROR_NONE) - TDM_INFO("%s backend loading success", TDM_DUMMY_MODULE); - else - TDM_INFO("%s backend loading failed", TDM_DUMMY_MODULE); - } - return ret; } @@ -1014,6 +1089,12 @@ _tdm_display_unload_modules(tdm_private_display *private_display) } /* LCOV_EXCL_STOP */ +INTERN void * +tdm_display_find_stamp(tdm_private_display *private_display, double stamp) +{ + return (void*)g_private_display; +} + EXTERN tdm_display * tdm_display_init(tdm_error *error) { @@ -1050,6 +1131,8 @@ tdm_display_init(tdm_error *error) private_display->stamp = tdm_helper_get_time(); + LIST_INITHEAD(&private_display->output_create_handler_list); + str = tdm_config_get_string(TDM_CONFIG_KEY_DEBUG_MODULE, NULL); if (str) tdm_display_enable_debug_module(str); @@ -1162,6 +1245,8 @@ tdm_display_init(tdm_error *error) if (error) *error = TDM_ERROR_NONE; + tdm_thread_cb_set_find_func(TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE, tdm_display_find_stamp); + _pthread_mutex_unlock(&private_display->lock); pthread_mutex_unlock(&gLock); diff --git a/src/tdm_backend.c b/src/tdm_backend.c index c979129..7d469d1 100644 --- a/src/tdm_backend.c +++ b/src/tdm_backend.c @@ -44,6 +44,11 @@ TDM_RETURN_VAL_IF_FAIL(dpy != NULL, TDM_ERROR_INVALID_PARAMETER); \ private_display = (tdm_private_display*)dpy; +#define BACKEND_FUNC_ENTRY_VOID() \ + tdm_private_display *private_display; \ + TDM_RETURN_IF_FAIL(dpy != NULL); \ + private_display = (tdm_private_display*)dpy; + static int _check_abi_version(tdm_backend_module *module, int abimaj, int abimin) { @@ -224,3 +229,45 @@ tdm_backend_register_func_capture(tdm_display *dpy, return TDM_ERROR_NONE; } + +EXTERN tdm_error +tdm_backend_register_output(tdm_display *dpy, tdm_output *output) +{ + tdm_error ret; + + BACKEND_FUNC_ENTRY(); + + TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), TDM_ERROR_OPERATION_FAILED); + TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_OPERATION_FAILED); + + /* this function is only for backend. if backend calls this function, it means + * that it's triggered by frontend. frontend should set current_module before calling + * backend functions. + */ + TDM_RETURN_VAL_IF_FAIL(private_display->current_module != NULL, TDM_ERROR_OPERATION_FAILED); + + ret = tdm_display_update_output(private_display->current_module, output); + TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, ret); + + return TDM_ERROR_NONE; +} + +EXTERN void +tdm_backend_unregister_output(tdm_display *dpy, tdm_output *output) +{ + tdm_private_output *private_output; + + BACKEND_FUNC_ENTRY_VOID(); + + TDM_RETURN_IF_FAIL(TDM_MUTEX_IS_LOCKED()); + TDM_RETURN_IF_FAIL(output != NULL); + + /* this function is only for backend. if backend calls this function, it means + * that it's triggered by frontend. frontend should set current_module before calling + * backend functions. + */ + TDM_RETURN_IF_FAIL(private_display->current_module != NULL); + + private_output = tdm_display_find_private_output(private_display, output); + tdm_display_destroy_private_output(private_output); +} diff --git a/src/tdm_display.c b/src/tdm_display.c index 45ccdf2..9f6dd72 100644 --- a/src/tdm_display.c +++ b/src/tdm_display.c @@ -53,6 +53,13 @@ TDM_RETURN_VAL_IF_FAIL_WITH_ERROR(dpy != NULL, TDM_ERROR_INVALID_PARAMETER, NULL); \ private_display = (tdm_private_display*)dpy; +#define DISPLAY_FUNC_ENTRY_VOID() \ + tdm_private_display *private_display; \ + TDM_RETURN_IF_FAIL(dpy != NULL); \ + TDM_RETURN_IF_FAIL(tdm_display_is_valid(dpy)); \ + private_display = (tdm_private_display*)dpy; + + #define BACKEND_FUNC_ENTRY() \ tdm_private_module *private_module; \ tdm_private_display *private_display; \ @@ -349,6 +356,122 @@ tdm_display_enable_fps(tdm_private_display *private_display, int enable) } /* LCOV_EXCL_STOP */ +INTERN tdm_error +tdm_display_call_thread_cb_output_create(tdm_private_display *private_display, tdm_output *output) +{ + tdm_thread_cb_display_output_create output_create; + tdm_error ret; + + memset(&output_create, 0, sizeof output_create); + output_create.base.type = TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE; + output_create.base.length = sizeof output_create; + output_create.base.object_stamp = 0; + output_create.base.data = NULL; + output_create.base.sync = 1; + output_create.output = output; + + ret = tdm_thread_cb_call(private_display, &output_create.base, 1); + TDM_WARNING_IF_FAIL(ret == TDM_ERROR_NONE); + + return TDM_ERROR_NONE; +} + +INTERN void +tdm_display_thread_cb_output_create(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data) +{ + tdm_thread_cb_display_output_create *output_create = (tdm_thread_cb_display_output_create*)cb_base; + tdm_private_output_create_handler *create_handler = user_data; + TDM_RETURN_IF_FAIL(TDM_MUTEX_IS_LOCKED()); + + assert(create_handler->owner_tid == syscall(SYS_gettid)); + + _pthread_mutex_unlock(&private_display->lock); + create_handler->func(private_display, output_create->output, create_handler->user_data); + _pthread_mutex_lock(&private_display->lock); +} + +EXTERN tdm_error +tdm_display_add_output_create_handler(tdm_display *dpy, + tdm_output_create_handler func, + void *user_data) +{ + tdm_private_output_create_handler *create_handler = NULL; + + DISPLAY_FUNC_ENTRY(); + + TDM_RETURN_VAL_IF_FAIL(func != NULL, TDM_ERROR_INVALID_PARAMETER); + + _pthread_mutex_lock(&private_display->lock); + + LIST_FOR_EACH_ENTRY(create_handler, &private_display->output_create_handler_list, link) { + if (create_handler->func == func && create_handler->user_data == user_data) { + TDM_ERR("can't add twice"); + _pthread_mutex_unlock(&private_display->lock); + return TDM_ERROR_BAD_REQUEST; + } + } + + create_handler = calloc(1, sizeof(tdm_private_output_create_handler)); + if (!create_handler) { + TDM_ERR("failed: alloc memory"); + _pthread_mutex_unlock(&private_display->lock); + return TDM_ERROR_OUT_OF_MEMORY; + } + + ret = tdm_thread_cb_add(private_display, TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE, NULL, + tdm_display_thread_cb_output_create, create_handler); + if (ret != TDM_ERROR_NONE) { + TDM_ERR("tdm_thread_cb_add failed"); + free(create_handler); + _pthread_mutex_unlock(&private_display->lock); + return TDM_ERROR_OPERATION_FAILED; + } + + create_handler->private_display = private_display; + create_handler->func = func; + create_handler->user_data = user_data; + create_handler->owner_tid = syscall(SYS_gettid); + + LIST_ADDTAIL(&create_handler->link, &private_display->output_create_handler_list); + + _pthread_mutex_unlock(&private_display->lock); + + return ret; +} + +EXTERN void +tdm_display_remove_output_create_handler(tdm_display *dpy, + tdm_output_create_handler func, + void *user_data) +{ + tdm_private_display *private_display; + tdm_private_output_create_handler *create_handler = NULL, *hh = NULL; + + TDM_RETURN_IF_FAIL(dpy != NULL); + TDM_RETURN_IF_FAIL(func != NULL); + + private_display = (tdm_private_display*)dpy; + + _pthread_mutex_lock(&private_display->lock); + + LIST_FOR_EACH_ENTRY_SAFE(create_handler, hh, &private_display->output_create_handler_list, link) { + if (create_handler->func != func || create_handler->user_data != user_data) + continue; + + tdm_thread_cb_remove(private_display, TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE, NULL, + tdm_display_thread_cb_output_create, create_handler); + + LIST_DEL(&create_handler->link); + free(create_handler); + + _pthread_mutex_unlock(&private_display->lock); + + return; + } + + _pthread_mutex_unlock(&private_display->lock); +} + EXTERN tdm_error tdm_display_get_capabilities(tdm_display *dpy, tdm_display_capability *capabilities) diff --git a/src/tdm_event_loop.c b/src/tdm_event_loop.c index b7de4ab..5117c27 100644 --- a/src/tdm_event_loop.c +++ b/src/tdm_event_loop.c @@ -63,6 +63,7 @@ static tdm_error _tdm_event_loop_main_fd_handler(int fd, tdm_event_loop_mask mask, void *user_data) { tdm_private_module *private_module = (tdm_private_module*)user_data; + tdm_private_display *private_display; tdm_func_display *func_display; tdm_error ret; @@ -76,7 +77,10 @@ _tdm_event_loop_main_fd_handler(int fd, tdm_event_loop_mask mask, void *user_dat if (!func_display->display_handle_events) return TDM_ERROR_NONE; + private_display = private_module->private_display; + private_display->current_module = private_module; ret = func_display->display_handle_events(private_module->bdata); + private_display->current_module = NULL; return ret; } diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 0c8b336..5b5d96b 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -846,6 +846,8 @@ _tdm_helper_get_backend_information(tdm_private_module *private_module, char *re } } } + if (LIST_IS_EMPTY(&private_module->output_list)) + TDM_SNPRINTF(reply, len, "(no output)\n"); TDM_SNPRINTF(reply, len, "\n"); /* layer information */ @@ -948,6 +950,8 @@ _tdm_helper_get_backend_information(tdm_private_module *private_module, char *re } } } + if (LIST_IS_EMPTY(&private_module->output_list)) + TDM_SNPRINTF(reply, len, "(no layer)\n"); TDM_SNPRINTF(reply, len, "\n"); if (private_module->capabilities & TDM_DISPLAY_CAPABILITY_PP) { diff --git a/src/tdm_layer.c b/src/tdm_layer.c index d8503a5..429f885 100644 --- a/src/tdm_layer.c +++ b/src/tdm_layer.c @@ -1265,6 +1265,20 @@ tdm_layer_set_buffer_queue(tdm_layer *layer, tbm_surface_queue_h buffer_queue) return ret; } +tdm_error +tdm_layer_get_own_buffer_queue(tdm_layer *layer, tbm_surface_queue_h *buffer_queue) +{ + LAYER_FUNC_ENTRY(); + + TDM_RETURN_VAL_IF_FAIL(buffer_queue != NULL, TDM_ERROR_INVALID_PARAMETER); + + _pthread_mutex_lock(&private_display->lock); + + _pthread_mutex_unlock(&private_display->lock); + + return ret; +} + EXTERN tdm_error tdm_layer_unset_buffer_queue(tdm_layer *layer) { diff --git a/src/tdm_macro.h b/src/tdm_macro.h index 5b8f861..24899c3 100644 --- a/src/tdm_macro.h +++ b/src/tdm_macro.h @@ -245,6 +245,8 @@ TDM_TYPE_NAME_FN(value_type) static struct tdm_type_name tdm_cb_type_names[] = { { TDM_THREAD_CB_NONE, "none" }, { TDM_THREAD_CB_EXIT, "exit" }, + { TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE, "output-create" }, + { TDM_THREAD_CB_OUTPUT_DESTROY, "output-destroy" }, { TDM_THREAD_CB_OUTPUT_COMMIT, "output-commit" }, { TDM_THREAD_CB_OUTPUT_VBLANK, "output-vblank" }, { TDM_THREAD_CB_OUTPUT_STATUS, "output-status" }, diff --git a/src/tdm_output.c b/src/tdm_output.c index ee760c1..550a750 100644 --- a/src/tdm_output.c +++ b/src/tdm_output.c @@ -57,6 +57,13 @@ private_output = (tdm_private_output*)output; \ private_display = private_output->private_display +#define OUTPUT_FUNC_ENTRY_VOID() \ + tdm_private_display *private_display; \ + tdm_private_output *private_output; \ + TDM_RETURN_IF_FAIL(tdm_output_is_valid(output)); \ + private_output = (tdm_private_output*)output; \ + private_display = private_output->private_display + static void _tdm_output_vblank_timeout_update(tdm_private_output *private_output, int ms_delay); @@ -130,15 +137,131 @@ _tdm_output_vblank_timeout_update(tdm_private_output *private_output, int ms_del INTERN tdm_error tdm_output_init(tdm_private_display *private_display) { + tdm_thread_cb_set_find_func(TDM_THREAD_CB_OUTPUT_DESTROY, tdm_display_find_output_stamp); tdm_thread_cb_set_find_func(TDM_THREAD_CB_OUTPUT_COMMIT, tdm_display_find_output_stamp); tdm_thread_cb_set_find_func(TDM_THREAD_CB_OUTPUT_VBLANK, tdm_display_find_output_stamp); tdm_thread_cb_set_find_func(TDM_THREAD_CB_OUTPUT_STATUS, tdm_display_find_output_stamp); tdm_thread_cb_set_find_func(TDM_THREAD_CB_OUTPUT_DPMS, tdm_display_find_output_stamp); + return TDM_ERROR_NONE; +} + +INTERN tdm_error +tdm_output_call_thread_cb_destroy(tdm_private_output *private_output) +{ + tdm_thread_cb_output_destroy output_destroy; + tdm_error ret; + + memset(&output_destroy, 0, sizeof output_destroy); + output_destroy.base.type = TDM_THREAD_CB_OUTPUT_DESTROY; + output_destroy.base.length = sizeof output_destroy; + output_destroy.base.object_stamp = private_output->stamp; + output_destroy.base.data = NULL; + output_destroy.base.sync = 1; + + ret = tdm_thread_cb_call(private_output, &output_destroy.base, 1); + TDM_WARNING_IF_FAIL(ret == TDM_ERROR_NONE); return TDM_ERROR_NONE; } +INTERN void +tdm_output_thread_cb_destroy(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data) +{ + tdm_private_output *private_output = object; + tdm_private_output_destroy_handler *destroy_handler = user_data; + + TDM_RETURN_IF_FAIL(TDM_MUTEX_IS_LOCKED()); + + assert(destroy_handler->owner_tid == syscall(SYS_gettid)); + + _pthread_mutex_unlock(&private_display->lock); + destroy_handler->func(private_output, destroy_handler->user_data); + _pthread_mutex_lock(&private_display->lock); +} + +EXTERN tdm_error +tdm_output_add_destroy_handler(tdm_output *output, + tdm_output_destroy_handler func, + void *user_data) +{ + tdm_private_output_destroy_handler *destroy_handler = NULL; + OUTPUT_FUNC_ENTRY(); + + TDM_RETURN_VAL_IF_FAIL(func != NULL, TDM_ERROR_INVALID_PARAMETER); + + _pthread_mutex_lock(&private_display->lock); + + LIST_FOR_EACH_ENTRY(destroy_handler, &private_output->destroy_handler_list, link) { + if (destroy_handler->func == func && destroy_handler->user_data == user_data) { + TDM_ERR("can't add twice"); + _pthread_mutex_unlock(&private_display->lock); + return TDM_ERROR_BAD_REQUEST; + } + } + + destroy_handler = calloc(1, sizeof(tdm_private_output_destroy_handler)); + if (!destroy_handler) { + TDM_ERR("failed: alloc memory"); + _pthread_mutex_unlock(&private_display->lock); + return TDM_ERROR_OUT_OF_MEMORY; + } + + ret = tdm_thread_cb_add(private_output, TDM_THREAD_CB_OUTPUT_DESTROY, NULL, tdm_output_thread_cb_destroy, destroy_handler); + if (ret != TDM_ERROR_NONE) { + TDM_ERR("tdm_thread_cb_add failed"); + free(destroy_handler); + _pthread_mutex_unlock(&private_display->lock); + return TDM_ERROR_OPERATION_FAILED; + } + + destroy_handler->private_output = private_output; + destroy_handler->func = func; + destroy_handler->user_data = user_data; + destroy_handler->owner_tid = syscall(SYS_gettid); + + LIST_ADDTAIL(&destroy_handler->link, &private_output->destroy_handler_list); + + _pthread_mutex_unlock(&private_display->lock); + + return ret; +} + + +EXTERN void +tdm_output_remove_destroy_handler(tdm_output *output, + tdm_output_destroy_handler func, + void *user_data) +{ + tdm_private_display *private_display; + tdm_private_output *private_output; + tdm_private_output_destroy_handler *destroy_handler = NULL, *hh = NULL; + + TDM_RETURN_IF_FAIL(output != NULL); + TDM_RETURN_IF_FAIL(func != NULL); + + private_output = (tdm_private_output*)output; + private_display = private_output->private_display; + + _pthread_mutex_lock(&private_display->lock); + + LIST_FOR_EACH_ENTRY_SAFE(destroy_handler, hh, &private_output->destroy_handler_list, link) { + if (destroy_handler->func != func || destroy_handler->user_data != user_data) + continue; + + tdm_thread_cb_remove(private_output, TDM_THREAD_CB_OUTPUT_DESTROY, NULL, tdm_output_thread_cb_destroy, destroy_handler); + + LIST_DEL(&destroy_handler->link); + free(destroy_handler); + + _pthread_mutex_unlock(&private_display->lock); + + return; + } + + _pthread_mutex_unlock(&private_display->lock); +} + EXTERN tdm_module * tdm_output_get_backend_module(tdm_output *output, tdm_error *error) { @@ -297,7 +420,7 @@ tdm_output_cb_status(tdm_output *output_backend, tdm_output_conn_status status, if ((private_output->caps.status == TDM_OUTPUT_CONN_STATUS_DISCONNECTED && status != TDM_OUTPUT_CONN_STATUS_DISCONNECTED) || (private_output->caps.status != TDM_OUTPUT_CONN_STATUS_DISCONNECTED && status == TDM_OUTPUT_CONN_STATUS_DISCONNECTED)) { - ret = tdm_display_update_output(private_output->private_module, output_backend, private_output->pipe, 1); + ret = tdm_display_update_output(private_output->private_module, output_backend); TDM_RETURN_IF_FAIL(ret == TDM_ERROR_NONE); } else { private_output->caps.status = status; diff --git a/src/tdm_private.h b/src/tdm_private.h index 5e1ed84..6478221 100644 --- a/src/tdm_private.h +++ b/src/tdm_private.h @@ -88,10 +88,17 @@ tdm_display_get(void); int tdm_module_check_abi(tdm_private_module *private_module, int abimaj, int abimin); +tdm_error +tdm_display_call_thread_cb_output_create(tdm_private_display *private_display, tdm_output *output); +void +tdm_display_thread_cb_output_create(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data); void * tdm_display_find_output_stamp(tdm_private_display *private_display, double stamp); tdm_private_output * tdm_display_find_private_output(tdm_private_display *private_display, tdm_output *output_backend); +unsigned int +tdm_display_find_empty_output_pipe(tdm_private_display *private_display); + void * tdm_display_find_hwc_stamp(tdm_private_display *private_display, double stamp); @@ -101,6 +108,10 @@ tdm_display_find_private_hwc(tdm_private_display *private_display, tdm_hwc *hwc_ tdm_error tdm_output_init(tdm_private_display *private_display); +tdm_error +tdm_output_call_thread_cb_destroy(tdm_private_output *private_output); +void +tdm_output_thread_cb_destroy(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data); void tdm_output_thread_cb_change(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data); void @@ -225,8 +236,10 @@ extern int tdm_dump_enable; extern char *tdm_debug_dump_dir; tdm_error -tdm_display_update_output(tdm_private_module *private_module, - tdm_output *output_backend, int pipe, unsigned int need_new_caps); +tdm_display_update_output(tdm_private_module *private_module, tdm_output *output_backend); +void +tdm_display_destroy_private_output(tdm_private_output *private_output); + tdm_error tdm_display_enable_debug_module(const char*modules); tdm_error diff --git a/src/tdm_private_types.h b/src/tdm_private_types.h index 37adf72..365ea7d 100644 --- a/src/tdm_private_types.h +++ b/src/tdm_private_types.h @@ -107,6 +107,8 @@ typedef struct _tdm_private_capture tdm_private_capture; typedef struct _tdm_private_loop tdm_private_loop; typedef struct _tdm_private_server tdm_private_server; typedef struct _tdm_private_thread tdm_private_thread; +typedef struct _tdm_private_output_create_handler tdm_private_output_create_handler; +typedef struct _tdm_private_output_destroy_handler tdm_private_output_destroy_handler; typedef struct _tdm_private_output_change_handler tdm_private_output_change_handler; typedef struct _tdm_private_output_commit_handler tdm_private_output_commit_handler; typedef struct _tdm_private_output_vblank_handler tdm_private_output_vblank_handler; @@ -163,6 +165,7 @@ struct _tdm_private_display { #endif struct list_head module_list; + tdm_private_module *dummy_module; tdm_private_module *current_module; //setted only when loading tdm_private_module *pp_module; //pp-support backend tdm_private_module *capture_module; //TODO: remove later @@ -170,6 +173,8 @@ struct _tdm_private_display { /* for event handling */ tdm_private_loop *private_loop; + struct list_head output_create_handler_list; + int print_fps; }; @@ -210,6 +215,7 @@ struct _tdm_private_output { tdm_event_loop_source *vblank_timeout_timer; unsigned int vblank_timeout_timer_expired; + struct list_head destroy_handler_list; struct list_head change_handler_list; void **layers_ptr; @@ -384,6 +390,26 @@ struct _tdm_private_output_vblank_handler { pid_t owner_tid; }; +struct _tdm_private_output_create_handler { + struct list_head link; + + tdm_private_display *private_display; + tdm_output_create_handler func; + void *user_data; + + pid_t owner_tid; +}; + +struct _tdm_private_output_destroy_handler { + struct list_head link; + + tdm_private_output *private_output; + tdm_output_destroy_handler func; + void *user_data; + + pid_t owner_tid; +}; + struct _tdm_private_output_change_handler { struct list_head link; @@ -458,6 +484,8 @@ typedef struct _tdm_capture_private_buffer { typedef enum { TDM_THREAD_CB_NONE, TDM_THREAD_CB_EXIT, /* special type to exit the tdm-thread */ + TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE, + TDM_THREAD_CB_OUTPUT_DESTROY, TDM_THREAD_CB_OUTPUT_COMMIT, TDM_THREAD_CB_OUTPUT_VBLANK, TDM_THREAD_CB_OUTPUT_STATUS, @@ -471,6 +499,8 @@ typedef enum { } tdm_thread_cb_type; typedef struct _tdm_thread_cb_base tdm_thread_cb_base; +typedef struct _tdm_thread_cb_display_output_create tdm_thread_cb_display_output_create; +typedef struct _tdm_thread_cb_output_destroy tdm_thread_cb_output_destroy; typedef struct _tdm_thread_cb_output_vblank tdm_thread_cb_output_commit; typedef struct _tdm_thread_cb_output_vblank tdm_thread_cb_output_vblank; typedef struct _tdm_thread_cb_output_dpms tdm_thread_cb_output_dpms; @@ -489,6 +519,15 @@ struct _tdm_thread_cb_base { unsigned int sync; }; +struct _tdm_thread_cb_display_output_create { + tdm_thread_cb_base base; + tdm_output *output; +}; + +struct _tdm_thread_cb_output_destroy { + tdm_thread_cb_base base; +}; + struct _tdm_thread_cb_output_vblank { tdm_thread_cb_base base; unsigned int sequence; diff --git a/src/tdm_thread.c b/src/tdm_thread.c index 2cc2f13..d367d4e 100644 --- a/src/tdm_thread.c +++ b/src/tdm_thread.c @@ -451,6 +451,8 @@ tdm_thread_handle_cb(tdm_private_loop *private_loop) if (tdm_debug_module & TDM_DEBUG_THREAD) TDM_INFO("type(%s), length(%d)", tdm_cb_type_str(base->type), base->length); switch (base->type) { + case TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE: + case TDM_THREAD_CB_OUTPUT_DESTROY: case TDM_THREAD_CB_OUTPUT_COMMIT: case TDM_THREAD_CB_OUTPUT_VBLANK: case TDM_THREAD_CB_OUTPUT_STATUS: -- 2.7.4 From eca0e8c8a3a8b1a4b27823a87a35f81044f10a77 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 18 Jul 2018 11:51:46 +0900 Subject: [PATCH 16/16] virtual:add virtual backend copy dummy backend. load virtual backend module default. Change-Id: If130aa455e28ecf01a5674ae87d8247554144a09 Signed-off-by: Junkyeong Kim --- backends/Makefile.am | 2 +- backends/virtual/Makefile.am | 14 + backends/virtual/tdm_virtual.c | 134 +++++++ backends/virtual/tdm_virtual.h | 76 ++++ backends/virtual/tdm_virtual_display.c | 636 +++++++++++++++++++++++++++++++++ configure.ac | 1 + packaging/libtdm.spec | 1 + src/tdm.c | 8 + src/tdm_macro.h | 1 + src/tdm_private_types.h | 1 + 10 files changed, 873 insertions(+), 1 deletion(-) create mode 100644 backends/virtual/Makefile.am create mode 100644 backends/virtual/tdm_virtual.c create mode 100644 backends/virtual/tdm_virtual.h create mode 100644 backends/virtual/tdm_virtual_display.c diff --git a/backends/Makefile.am b/backends/Makefile.am index 4a66860..f841dd0 100644 --- a/backends/Makefile.am +++ b/backends/Makefile.am @@ -1 +1 @@ -SUBDIRS = dummy +SUBDIRS = dummy virtual diff --git a/backends/virtual/Makefile.am b/backends/virtual/Makefile.am new file mode 100644 index 0000000..099b71e --- /dev/null +++ b/backends/virtual/Makefile.am @@ -0,0 +1,14 @@ +AM_CFLAGS = \ + $(CFLAGS) \ + $(TDM_CFLAGS) \ + -I$(top_srcdir)/include + +libtdm_virtual_la_LTLIBRARIES = libtdm-virtual.la +libtdm_virtual_ladir = $(TDM_MODULE_PATH) +libtdm_virtual_la_LDFLAGS = -module -avoid-version +libtdm_virtual_la_LIBADD = $(TDM_LIBS) $(top_builddir)/src/libtdm.la + +libtdm_virtual_la_SOURCES = \ + tdm_virtual_display.c \ + tdm_virtual.c + diff --git a/backends/virtual/tdm_virtual.c b/backends/virtual/tdm_virtual.c new file mode 100644 index 0000000..f890829 --- /dev/null +++ b/backends/virtual/tdm_virtual.c @@ -0,0 +1,134 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "tdm_virtual.h" + +static tdm_virtual_data *virtual_data; + +void +tdm_virtual_deinit(tdm_backend_data *bdata) +{ + if (virtual_data != bdata) + return; + + TDM_INFO("deinit"); + + tdm_virtual_display_destroy_output_list(virtual_data); + + if (virtual_data->pipe[0] >= 0) + close(virtual_data->pipe[0]); + if (virtual_data->pipe[1] >= 0) + close(virtual_data->pipe[1]); + + free(virtual_data); + virtual_data = NULL; +} + +tdm_backend_data * +tdm_virtual_init(tdm_display *dpy, tdm_error *error) +{ + tdm_func_display virtual_func_display; + tdm_func_output virtual_func_output; + tdm_func_layer virtual_func_layer; + tdm_error ret; + + if (!dpy) { + TDM_ERR("display is null"); + if (error) + *error = TDM_ERROR_INVALID_PARAMETER; + return NULL; + } + + if (virtual_data) { + TDM_ERR("failed: init twice"); + if (error) + *error = TDM_ERROR_BAD_REQUEST; + return NULL; + } + + virtual_data = calloc(1, sizeof(tdm_virtual_data)); + if (!virtual_data) { + TDM_ERR("alloc failed"); + if (error) + *error = TDM_ERROR_OUT_OF_MEMORY; + return NULL; + } + + LIST_INITHEAD(&virtual_data->output_list); + LIST_INITHEAD(&virtual_data->buffer_list); + + memset(&virtual_func_display, 0, sizeof(virtual_func_display)); + virtual_func_display.display_get_capability = virtual_display_get_capability; + virtual_func_display.display_get_outputs = virtual_display_get_outputs; + virtual_func_display.display_get_fd = virtual_display_get_fd; + virtual_func_display.display_handle_events = virtual_display_handle_events; + + memset(&virtual_func_output, 0, sizeof(virtual_func_output)); + virtual_func_output.output_get_capability = virtual_output_get_capability; + virtual_func_output.output_get_layers = virtual_output_get_layers; + virtual_func_output.output_wait_vblank = virtual_output_wait_vblank; + virtual_func_output.output_set_vblank_handler = virtual_output_set_vblank_handler; + virtual_func_output.output_commit = virtual_output_commit; + virtual_func_output.output_set_commit_handler = virtual_output_set_commit_handler; + virtual_func_output.output_set_mode = virtual_output_set_mode; + virtual_func_output.output_get_mode = virtual_output_get_mode; + + memset(&virtual_func_layer, 0, sizeof(virtual_func_layer)); + virtual_func_layer.layer_get_capability = virtual_layer_get_capability; + virtual_func_layer.layer_set_info = virtual_layer_set_info; + virtual_func_layer.layer_get_info = virtual_layer_get_info; + virtual_func_layer.layer_set_buffer = virtual_layer_set_buffer; + virtual_func_layer.layer_unset_buffer = virtual_layer_unset_buffer; + + ret = tdm_backend_register_func_display(dpy, &virtual_func_display); + if (ret != TDM_ERROR_NONE) + goto failed; + + ret = tdm_backend_register_func_output(dpy, &virtual_func_output); + if (ret != TDM_ERROR_NONE) + goto failed; + + ret = tdm_backend_register_func_layer(dpy, &virtual_func_layer); + if (ret != TDM_ERROR_NONE) + goto failed; + + virtual_data->dpy = dpy; + + if (pipe(virtual_data->pipe) < 0) { + TDM_ERR("failed get pipe: %m"); + ret = TDM_ERROR_OPERATION_FAILED; + goto failed; + } + + ret = tdm_virtual_display_create_output_list(virtual_data); + if (ret != TDM_ERROR_NONE) + goto failed; + + ret = tdm_virtual_display_create_layer_list(virtual_data); + if (ret != TDM_ERROR_NONE) + goto failed; + + if (error) + *error = TDM_ERROR_NONE; + + TDM_INFO("init success!"); + + return (tdm_backend_data *)virtual_data; +failed: + if (error) + *error = ret; + + tdm_virtual_deinit(virtual_data); + + TDM_ERR("init failed!"); + return NULL; +} + +tdm_backend_module tdm_backend_module_data = { + "Virtual", + "Samsung", + TDM_BACKEND_SET_ABI_VERSION(1, 1), + tdm_virtual_init, + tdm_virtual_deinit +}; diff --git a/backends/virtual/tdm_virtual.h b/backends/virtual/tdm_virtual.h new file mode 100644 index 0000000..2a25ab6 --- /dev/null +++ b/backends/virtual/tdm_virtual.h @@ -0,0 +1,76 @@ +#ifndef _TDM_VIRTUAL_H_ +#define _TDM_VIRTUAL_H_ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +/* virtual backend functions (display) */ +tdm_error virtual_display_get_capability(tdm_backend_data *bdata, tdm_caps_display *caps); +tdm_output** virtual_display_get_outputs(tdm_backend_data *bdata, int *count, tdm_error *error); +tdm_error virtual_display_get_fd(tdm_backend_data *bdata, int *fd); +tdm_error virtual_display_handle_events(tdm_backend_data *bdata); + +tdm_error virtual_output_get_capability(tdm_output *output, tdm_caps_output *caps); +tdm_layer** virtual_output_get_layers(tdm_output *output, int *count, tdm_error *error); +tdm_error virtual_output_wait_vblank(tdm_output *output, int interval, int sync, void *user_data); +tdm_error virtual_output_set_vblank_handler(tdm_output *output, tdm_output_vblank_handler func); +tdm_error virtual_output_commit(tdm_output *output, int sync, void *user_data); +tdm_error virtual_output_set_commit_handler(tdm_output *output, tdm_output_commit_handler func); +tdm_error virtual_output_set_mode(tdm_output *output, const tdm_output_mode *mode); +tdm_error virtual_output_get_mode(tdm_output *output, const tdm_output_mode **mode); + +tdm_error virtual_layer_get_capability(tdm_layer *layer, tdm_caps_layer *caps); +tdm_error virtual_layer_set_info(tdm_layer *layer, tdm_info_layer *info); +tdm_error virtual_layer_get_info(tdm_layer *layer, tdm_info_layer *info); +tdm_error virtual_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer); +tdm_error virtual_layer_unset_buffer(tdm_layer *layer); + +#define RETURN_VAL_IF_FAIL(cond, val) {\ + if (!(cond)) {\ + TDM_ERR("'%s' failed", #cond);\ + return val;\ + }\ +} + +#define GOTO_IF_FAIL(cond, val) {\ + if (!(cond)) {\ + TDM_ERR("'%s' failed", #cond);\ + goto val;\ + }\ +} + +typedef struct _tdm_virtual_data +{ + tdm_display *dpy; + + int pipe[2]; + + struct list_head output_list; + struct list_head buffer_list; +} tdm_virtual_data; + +tdm_error tdm_virtual_display_create_output_list(tdm_virtual_data *virtual_data); +void tdm_virtual_display_destroy_output_list(tdm_virtual_data *virtual_data); +tdm_error tdm_virtual_display_create_layer_list(tdm_virtual_data *virtual_data); + +#endif /* _TDM_VIRTUAL_H_ */ diff --git a/backends/virtual/tdm_virtual_display.c b/backends/virtual/tdm_virtual_display.c new file mode 100644 index 0000000..185f10d --- /dev/null +++ b/backends/virtual/tdm_virtual_display.c @@ -0,0 +1,636 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "tdm_virtual.h" + +typedef struct _tdm_virtual_output_data tdm_virtual_output_data; +typedef struct _tdm_virtual_layer_data tdm_virtual_layer_data; +typedef struct _tdm_virtual_event_data tdm_virtual_event_data; + +typedef enum { + TDM_VIRTUAL_EVENT_TYPE_WAIT, + TDM_VIRTUAL_EVENT_TYPE_COMMIT, +} tdm_virtual_event_type; + +struct _tdm_virtual_event_data { + struct list_head link; + + tdm_virtual_event_type type; + tdm_virtual_output_data *output_data; + void *user_data; +}; + +struct _tdm_virtual_output_data { + struct list_head link; + + /* data which are fixed at initializing */ + tdm_virtual_data *virtual_data; + + uint32_t pipe; + tdm_output_mode *output_mode; + tdm_output_type connector_type; + struct list_head layer_list; + tdm_virtual_layer_data *primary_layer; + + /* not fixed data below */ + tdm_output_vblank_handler vblank_func; + tdm_output_commit_handler commit_func; + + tdm_output_conn_status status; + + int mode_changed; + const tdm_output_mode *current_mode; + + tdm_event_loop_source *timer; + unsigned int timer_waiting; + struct list_head timer_event_list; +}; + +struct _tdm_virtual_layer_data { + struct list_head link; + + /* data which are fixed at initializing */ + tdm_virtual_data *virtual_data; + tdm_virtual_output_data *output_data; + tdm_layer_capability capabilities; + int zpos; + + /* not fixed data below */ + tdm_info_layer info; + int info_changed; + + tbm_surface_h display_buffer; + int display_buffer_changed; +}; + +static void +_tdm_virtual_display_cb_event(tdm_virtual_output_data *output_data, tdm_virtual_event_data *event_data, + unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec) +{ + switch (event_data->type) { + case TDM_VIRTUAL_EVENT_TYPE_WAIT: + if (output_data->vblank_func) + output_data->vblank_func(output_data, sequence, tv_sec, tv_usec, event_data->user_data); + break; + case TDM_VIRTUAL_EVENT_TYPE_COMMIT: + if (output_data->commit_func) + output_data->commit_func(output_data, sequence, tv_sec, tv_usec, event_data->user_data); + break; + default: + break; + } +} + +static tdm_error +_tdm_virtual_display_cb_timeout(void *user_data) +{ + tdm_virtual_output_data *output_data = user_data; + tdm_virtual_event_data *e = NULL, *ee = NULL; + unsigned int tv_sec, tv_usec; + static unsigned int sequence = 0; + struct timespec tp; + + sequence++; + + if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0) { + tv_sec = tp.tv_sec; + tv_usec = tp.tv_nsec / 1000; + } else { + tv_sec = tv_usec = 0; + } + + LIST_FOR_EACH_ENTRY_SAFE(e, ee, &output_data->timer_event_list, link) { + LIST_DEL(&e->link); + _tdm_virtual_display_cb_event(output_data, e, sequence, tv_sec, tv_usec); + free(e); + } + + return TDM_ERROR_NONE; +} + +static tdm_error +_tdm_virtual_display_wait_vblank(tdm_virtual_output_data *output_data, int interval, tdm_virtual_event_data *event_data) +{ + tdm_error ret; + unsigned int ms; + + RETURN_VAL_IF_FAIL(output_data->timer != NULL, TDM_ERROR_OPERATION_FAILED); + RETURN_VAL_IF_FAIL(output_data->output_mode->vrefresh > 0, TDM_ERROR_OPERATION_FAILED); + + if (output_data->timer_waiting) { + LIST_ADDTAIL(&event_data->link, &output_data->timer_event_list); + return TDM_ERROR_NONE; + } + + ms = ((double)1000.0 / output_data->output_mode->vrefresh) * interval; + + ret = tdm_event_loop_source_timer_update(output_data->timer, ms); + if (ret != TDM_ERROR_NONE) + return ret; + + LIST_ADDTAIL(&event_data->link, &output_data->timer_event_list); + + return TDM_ERROR_NONE; +} + +static void +_tdm_virtual_display_destroy_layer_list(tdm_virtual_data *virtual_data) +{ + tdm_virtual_output_data *o = NULL; + + LIST_FOR_EACH_ENTRY(o, &virtual_data->output_list, link) { + tdm_virtual_layer_data *l = NULL, *ll = NULL; + LIST_FOR_EACH_ENTRY_SAFE(l, ll, &o->layer_list, link) { + LIST_DEL(&l->link); + free(l); + } + } +} + +tdm_error +tdm_virtual_display_create_layer_list(tdm_virtual_data *virtual_data) +{ + tdm_virtual_output_data *output_data = NULL; + tdm_error ret = TDM_ERROR_NONE; + + if (LIST_IS_EMPTY(&virtual_data->output_list)) { + TDM_ERR("no output"); + return TDM_ERROR_OPERATION_FAILED; + } + + /* The TDM virtual backend only support one output. */ + LIST_FOR_EACH_ENTRY(output_data, &virtual_data->output_list, link) { + tdm_virtual_layer_data *layer_data = calloc(1, sizeof(tdm_virtual_layer_data)); + if (!layer_data) { + TDM_ERR("alloc failed"); + ret = TDM_ERROR_OUT_OF_MEMORY; + goto failed; + } + + layer_data->virtual_data = virtual_data; + layer_data->output_data = output_data; + layer_data->zpos = 0; + + layer_data->capabilities = TDM_LAYER_CAPABILITY_PRIMARY | TDM_LAYER_CAPABILITY_GRAPHIC; + output_data->primary_layer = layer_data; + + LIST_ADDTAIL(&layer_data->link, &output_data->layer_list); + } + + return TDM_ERROR_NONE; +failed: + _tdm_virtual_display_destroy_layer_list(virtual_data); + return ret; +} + +void +tdm_virtual_display_destroy_output_list(tdm_virtual_data *virtual_data) +{ + tdm_virtual_output_data *o = NULL, *oo = NULL; + + if (LIST_IS_EMPTY(&virtual_data->output_list)) + return; + + _tdm_virtual_display_destroy_layer_list(virtual_data); + + LIST_FOR_EACH_ENTRY_SAFE(o, oo, &virtual_data->output_list, link) { + LIST_DEL(&o->link); + + if (!LIST_IS_EMPTY(&o->timer_event_list)) { + tdm_virtual_event_data *e = NULL, *ee = NULL; + LIST_FOR_EACH_ENTRY_SAFE(e, ee, &o->timer_event_list, link) { + LIST_DEL(&e->link); + free(e); + } + } + + if (o->timer) + tdm_event_loop_source_remove(o->timer); + + free(o->output_mode); + free(o); + } +} + +tdm_error +tdm_virtual_display_create_output_list(tdm_virtual_data *virtual_data) +{ + tdm_virtual_output_data *output_data; + tdm_error ret; + + RETURN_VAL_IF_FAIL(LIST_IS_EMPTY(&virtual_data->output_list), TDM_ERROR_OPERATION_FAILED); + + output_data = calloc(1, sizeof(tdm_virtual_output_data)); + if (!output_data) { + TDM_ERR("alloc failed"); + ret = TDM_ERROR_OUT_OF_MEMORY; + goto failed_create; + } + + LIST_INITHEAD(&output_data->layer_list); + + output_data->virtual_data = virtual_data; + output_data->pipe = 0; + output_data->connector_type = TDM_OUTPUT_TYPE_Unknown; + output_data->status = TDM_OUTPUT_CONN_STATUS_CONNECTED; + + output_data->output_mode = calloc(1, sizeof(tdm_output_mode)); + if (!output_data->output_mode) { + TDM_ERR("alloc failed"); + free(output_data); + ret = TDM_ERROR_OUT_OF_MEMORY; + goto failed_create; + } + + snprintf(output_data->output_mode->name, TDM_NAME_LEN, "640x480"); + output_data->output_mode->vrefresh = 30; + output_data->output_mode->clock = 25200; + output_data->output_mode->hdisplay = 640; + output_data->output_mode->hsync_start = 656; + output_data->output_mode->hsync_end = 752; + output_data->output_mode->htotal = 800; + output_data->output_mode->hskew = 0; + output_data->output_mode->vdisplay = 480; + output_data->output_mode->vsync_start = 490; + output_data->output_mode->vsync_end = 492; + output_data->output_mode->vtotal = 525; + output_data->output_mode->vscan = 0; + output_data->output_mode->flags = 0; + output_data->output_mode->type = 0; + + output_data->timer = tdm_event_loop_add_timer_handler(virtual_data->dpy, + _tdm_virtual_display_cb_timeout, + output_data, + &ret); + if (!output_data->timer) { + free(output_data); + return ret; + } + + LIST_INITHEAD(&output_data->timer_event_list); + + LIST_ADDTAIL(&output_data->link, &virtual_data->output_list); + + return TDM_ERROR_NONE; +failed_create: + tdm_virtual_display_destroy_output_list(virtual_data); + return ret; +} + +tdm_error +virtual_display_get_capability(tdm_backend_data *bdata, tdm_caps_display *caps) +{ + RETURN_VAL_IF_FAIL(caps, TDM_ERROR_INVALID_PARAMETER); + + caps->max_layer_count = -1; /* not defined */ + + return TDM_ERROR_NONE; +} + +tdm_output ** +virtual_display_get_outputs(tdm_backend_data *bdata, int *count, tdm_error *error) +{ + tdm_virtual_data *virtual_data = bdata; + tdm_virtual_output_data *output_data = NULL; + tdm_output **outputs; + tdm_error ret; + int i; + + RETURN_VAL_IF_FAIL(virtual_data, NULL); + RETURN_VAL_IF_FAIL(count, NULL); + + *count = 0; + LIST_FOR_EACH_ENTRY(output_data, &virtual_data->output_list, link) + (*count)++; + + if (*count == 0) { + ret = TDM_ERROR_NONE; + goto failed_get; + } + + /* will be freed in frontend */ + outputs = calloc(*count, sizeof(tdm_virtual_output_data *)); + if (!outputs) { + TDM_ERR("failed: alloc memory"); + *count = 0; + ret = TDM_ERROR_OUT_OF_MEMORY; + goto failed_get; + } + + i = 0; + LIST_FOR_EACH_ENTRY(output_data, &virtual_data->output_list, link) + outputs[i++] = output_data; + + if (error) + *error = TDM_ERROR_NONE; + + return outputs; +failed_get: + if (error) + *error = ret; + return NULL; +} + +tdm_error +virtual_display_get_fd(tdm_backend_data *bdata, int *fd) +{ + tdm_virtual_data *virtual_data = bdata; + + RETURN_VAL_IF_FAIL(virtual_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(fd, TDM_ERROR_INVALID_PARAMETER); + + *fd = virtual_data->pipe[0]; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_display_handle_events(tdm_backend_data *bdata) +{ + return TDM_ERROR_NONE; +} + +tdm_error +virtual_output_get_capability(tdm_output *output, tdm_caps_output *caps) +{ + tdm_virtual_output_data *output_data = output; + tdm_error ret; + + RETURN_VAL_IF_FAIL(output_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(caps, TDM_ERROR_INVALID_PARAMETER); + + memset(caps, 0, sizeof(tdm_caps_output)); + + snprintf(caps->maker, TDM_NAME_LEN, "virtual"); + snprintf(caps->model, TDM_NAME_LEN, "virtual"); + snprintf(caps->name, TDM_NAME_LEN, "virtual"); + + caps->status = output_data->status; + caps->type = output_data->connector_type; + caps->type_id = 0; + + caps->mode_count = 1; + caps->modes = calloc(1, sizeof(tdm_output_mode)); + if (!caps->modes) { + ret = TDM_ERROR_OUT_OF_MEMORY; + TDM_ERR("alloc failed\n"); + goto failed_get; + } + + *caps->modes = *output_data->output_mode; + + caps->mmWidth = 640; + caps->mmHeight = 480; + caps->subpixel = 1; + + caps->min_w = -1; + caps->min_h = -1; + caps->max_w = -1; + caps->max_h = -1; + caps->preferred_align = -1; + + caps->prop_count = 0; + + return TDM_ERROR_NONE; +failed_get: + memset(caps, 0, sizeof(tdm_caps_output)); + return ret; +} + +tdm_layer ** +virtual_output_get_layers(tdm_output *output, int *count, tdm_error *error) +{ + tdm_virtual_output_data *output_data = output; + tdm_virtual_layer_data *layer_data = NULL; + tdm_layer **layers; + tdm_error ret; + int i; + + RETURN_VAL_IF_FAIL(output_data, NULL); + RETURN_VAL_IF_FAIL(count, NULL); + + *count = 0; + LIST_FOR_EACH_ENTRY(layer_data, &output_data->layer_list, link) + (*count)++; + + if (*count == 0) { + ret = TDM_ERROR_NONE; + goto failed_get; + } + + /* will be freed in frontend */ + layers = calloc(*count, sizeof(tdm_virtual_layer_data *)); + if (!layers) { + TDM_ERR("failed: alloc memory"); + *count = 0; + ret = TDM_ERROR_OUT_OF_MEMORY; + goto failed_get; + } + + i = 0; + LIST_FOR_EACH_ENTRY(layer_data, &output_data->layer_list, link) + layers[i++] = layer_data; + + if (error) + *error = TDM_ERROR_NONE; + + return layers; +failed_get: + if (error) + *error = ret; + return NULL; +} + +tdm_error +virtual_output_wait_vblank(tdm_output *output, int interval, int sync, void *user_data) +{ + tdm_virtual_output_data *output_data = output; + tdm_virtual_event_data *event_data; + tdm_error ret; + + RETURN_VAL_IF_FAIL(output_data, TDM_ERROR_INVALID_PARAMETER); + + event_data = calloc(1, sizeof(tdm_virtual_event_data)); + if (!event_data) { + TDM_ERR("alloc failed"); + return TDM_ERROR_OUT_OF_MEMORY; + } + + event_data->type = TDM_VIRTUAL_EVENT_TYPE_WAIT; + event_data->output_data = output_data; + event_data->user_data = user_data; + + ret = _tdm_virtual_display_wait_vblank(output_data, interval, event_data); + if (ret != TDM_ERROR_NONE) { + free(event_data); + return ret; + } + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_output_set_vblank_handler(tdm_output *output, tdm_output_vblank_handler func) +{ + tdm_virtual_output_data *output_data = output; + + RETURN_VAL_IF_FAIL(output_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(func, TDM_ERROR_INVALID_PARAMETER); + + output_data->vblank_func = func; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_output_commit(tdm_output *output, int sync, void *user_data) +{ + tdm_virtual_output_data *output_data = output; + tdm_virtual_event_data *event_data; + tdm_error ret; + + RETURN_VAL_IF_FAIL(output_data, TDM_ERROR_INVALID_PARAMETER); + + event_data = calloc(1, sizeof(tdm_virtual_event_data)); + if (!event_data) { + TDM_ERR("alloc failed"); + return TDM_ERROR_OUT_OF_MEMORY; + } + + event_data->type = TDM_VIRTUAL_EVENT_TYPE_COMMIT; + event_data->output_data = output_data; + event_data->user_data = user_data; + + ret = _tdm_virtual_display_wait_vblank(output_data, 1, event_data); + if (ret != TDM_ERROR_NONE) { + free(event_data); + return ret; + } + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_output_set_commit_handler(tdm_output *output, tdm_output_commit_handler func) +{ + tdm_virtual_output_data *output_data = output; + + RETURN_VAL_IF_FAIL(output_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(func, TDM_ERROR_INVALID_PARAMETER); + + output_data->commit_func = func; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_output_set_mode(tdm_output *output, const tdm_output_mode *mode) +{ + tdm_virtual_output_data *output_data = output; + + RETURN_VAL_IF_FAIL(output_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(mode, TDM_ERROR_INVALID_PARAMETER); + + output_data->current_mode = mode; + output_data->mode_changed = 1; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_output_get_mode(tdm_output *output, const tdm_output_mode **mode) +{ + tdm_virtual_output_data *output_data = output; + + RETURN_VAL_IF_FAIL(output_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(mode, TDM_ERROR_INVALID_PARAMETER); + + *mode = output_data->current_mode; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_layer_get_capability(tdm_layer *layer, tdm_caps_layer *caps) +{ + tdm_virtual_layer_data *layer_data = layer; + + RETURN_VAL_IF_FAIL(layer_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(caps, TDM_ERROR_INVALID_PARAMETER); + + memset(caps, 0, sizeof(tdm_caps_layer)); + + caps->capabilities = layer_data->capabilities; + caps->zpos = layer_data->zpos; + + caps->format_count = 2; + caps->formats = calloc(caps->format_count, sizeof(tbm_format)); + if (!caps->formats) { + TDM_ERR("alloc failed\n"); + free(caps->formats); + memset(caps, 0, sizeof(tdm_caps_layer)); + return TDM_ERROR_OUT_OF_MEMORY; + } + + caps->formats[0] = TBM_FORMAT_ARGB8888; + caps->formats[1] = TBM_FORMAT_XRGB8888; + + caps->prop_count = 0; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_layer_set_info(tdm_layer *layer, tdm_info_layer *info) +{ + tdm_virtual_layer_data *layer_data = layer; + + RETURN_VAL_IF_FAIL(layer_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(info, TDM_ERROR_INVALID_PARAMETER); + + layer_data->info = *info; + layer_data->info_changed = 1; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_layer_get_info(tdm_layer *layer, tdm_info_layer *info) +{ + tdm_virtual_layer_data *layer_data = layer; + + RETURN_VAL_IF_FAIL(layer_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(info, TDM_ERROR_INVALID_PARAMETER); + + *info = layer_data->info; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer) +{ + tdm_virtual_layer_data *layer_data = layer; + + RETURN_VAL_IF_FAIL(layer_data, TDM_ERROR_INVALID_PARAMETER); + RETURN_VAL_IF_FAIL(buffer, TDM_ERROR_INVALID_PARAMETER); + + layer_data->display_buffer = buffer; + layer_data->display_buffer_changed = 1; + + return TDM_ERROR_NONE; +} + +tdm_error +virtual_layer_unset_buffer(tdm_layer *layer) +{ + tdm_virtual_layer_data *layer_data = layer; + + RETURN_VAL_IF_FAIL(layer_data, TDM_ERROR_INVALID_PARAMETER); + + layer_data->display_buffer = NULL; + layer_data->display_buffer_changed = 1; + + return TDM_ERROR_NONE; +} diff --git a/configure.ac b/configure.ac index 3d13ec7..81d3828 100644 --- a/configure.ac +++ b/configure.ac @@ -100,6 +100,7 @@ AC_OUTPUT([ src/Makefile backends/Makefile backends/dummy/Makefile + backends/virtual/Makefile client/libtdm-client.pc client/Makefile tools/Makefile diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 5bcae43..c915e01 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -114,6 +114,7 @@ rm -f %{_unitdir_user}/basic.target.wants/tdm-socket-user.path %license COPYING %{_libdir}/libtdm.so.* %{_libdir}/tdm/libtdm-dummy.so +%{_libdir}/tdm/libtdm-virtual.so %attr(750,root,root) %{_bindir}/tdm-monitor %{_unitdir_user}/tdm-socket-user.path %{_unitdir_user}/tdm-socket-user.service diff --git a/src/tdm.c b/src/tdm.c index 3bbd6c3..6999b9e 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -797,6 +797,11 @@ _tdm_display_setup(tdm_private_display *private_display) } } + TDM_INFO("loading a %s backend", TDM_VIRTUAL_MODULE); + ret = _tdm_display_load_module_with_file(private_display, TDM_VIRTUAL_MODULE); + TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, failed_update); + TDM_GOTO_IF_FAIL(private_display->virtual_module != NULL, failed_update); + return TDM_ERROR_NONE; failed_update: @@ -1010,6 +1015,9 @@ _tdm_display_load_module_with_file(tdm_private_display *private_display, if (!strncmp(file, TDM_DUMMY_MODULE, TDM_NAME_LEN)) private_display->dummy_module = private_module; + if (!strncmp(file, TDM_VIRTUAL_MODULE, TDM_NAME_LEN)) + private_display->virtual_module = private_module; + private_module->bdata = bdata; if (ret != TDM_ERROR_NONE) { diff --git a/src/tdm_macro.h b/src/tdm_macro.h index 24899c3..d831146 100644 --- a/src/tdm_macro.h +++ b/src/tdm_macro.h @@ -86,6 +86,7 @@ extern "C" { /* common backend names *****************************************************/ #define TDM_DEFAULT_MODULE "libtdm-default.so" #define TDM_DUMMY_MODULE "libtdm-dummy.so" +#define TDM_VIRTUAL_MODULE "libtdm-virtual.so" /* dump directory ***********************************************************/ #define TDM_DUMP_DIR "/tmp" diff --git a/src/tdm_private_types.h b/src/tdm_private_types.h index 365ea7d..d74f4f2 100644 --- a/src/tdm_private_types.h +++ b/src/tdm_private_types.h @@ -166,6 +166,7 @@ struct _tdm_private_display { struct list_head module_list; tdm_private_module *dummy_module; + tdm_private_module *virtual_module; tdm_private_module *current_module; //setted only when loading tdm_private_module *pp_module; //pp-support backend tdm_private_module *capture_module; //TODO: remove later -- 2.7.4