Thanks to visit codestin.com
Credit goes to github.com

Skip to content

highgui: wayland: opencv_test_highgui fails #25550

@Kumataro

Description

@Kumataro

System Information

OpenCV version: 4.x ( bc95f27 )
Operating System / Platform: Ubuntu 24.04
Compiler & compiler version: GCC 13.2

--   GUI:                           Wayland
--     Wayland:                     (Experimental) YES
--       Wayland Client:            YES (ver 1.22.0)
--       Wayland Cursor:            YES (ver 1.22.0)
--       Wayland Protocols:         YES (ver 1.34)
--       Xkbcommon:                 YES (ver 1.6.0)
--       Wayland EGL(Option):       YES (ver 18.1.0)

Detailed description

opencv_test_highgui with wayland fails.

  • (A) it requires to support CV_8S/16S/32F/64F support (When debug build, there are some exceptions)
  • (B) it requires to initlize slider position with value in user pointer.
  • (C) it requires to update slider value and call update user function, but now if window condition is not ready, it will not.
  • (D) it requires to call getWindowImageRect(), but wayland backend is not supported by protocol limitation.
  • (E) it requires to get "1" if createTrackbar() is succeeded, but wayland backend returns 0.

kmtr@kmtr-VMware-Virtual-Platform:~/work/build4-main$ ./bin/opencv_test_highgui
CTEST_FULL_OUTPUT
OpenCV version: 4.9.0-dev
OpenCV VCS version: 4.9.0-423-gbc95f27e56
Build type: Debug
Compiler: /usr/bin/c++  (ver 13.2.0)
[ INFO:[email protected]] global registry_parallel.impl.hpp:96 ParallelBackendRegistry core(parallel): Enabled backends(3, sorted by priority): ONETBB(1000); TBB(990); OPENMP(980)
Parallel framework: pthreads (nthreads=8)
CPU features: SSE SSE2 SSE3 *SSE4.1 *SSE4.2 *FP16 *AVX *AVX2 *AVX512-SKX?
Intel(R) IPP version: ippIP AVX2 (l9) 2021.11.0 (-) Feb  1 2024
Intel(R) IPP features code: 0x8000
[ INFO:[email protected]] global ocl.cpp:1185 haveOpenCL Initialize OpenCL runtime...
[ INFO:[email protected]] global ocl.cpp:1191 haveOpenCL OpenCL: found 0 platforms
OpenCL is disabled
TEST: Skip tests with tags: 'mem_6gb', 'verylong', 'debug_verylong'
[==========] Running 4 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 4 tests from Highgui_GUI
[ RUN      ] Highgui_GUI.regression
[ INFO:[email protected]] global registry.impl.hpp:114 UIBackendRegistry UI: Enabled backends(3, sorted by priority): GTK(1000); GTK3(990); GTK2(980) + BUILTIN(Wayland)
[*] DEBUG: handle_toplevel_configure: maximized=0 fullscreen=0 resizing=0 focused=0 size=[0 x 0]
[*] DEBUG: handle_toplevel_configure: maximized=0 fullscreen=0 resizing=0 focused=1 size=[800 x 624]
/home/kmtr/work/opencv4/modules/highgui/test/test_gui.cpp:53: Failure //////////////// (D)
Expected equality of these values:
  rc.size()
    Which is: -1x-1
  img.size()
    Which is: 800x600
Google Test trace:
/home/kmtr/work/opencv4/modules/highgui/test/test_gui.cpp:80: 0
Exception message: OpenCV(4.9.0-dev) /home/kmtr/work/opencv4/modules/core/include/opencv2/core/mat.inl.hpp:910: error: (-215:Assertion failed) (unsigned)(i1 * DataType<_Tp>::channels) < (unsigned)(size.p[1] * channels()) in function 'at' 

/home/kmtr/work/opencv4/modules/highgui/test/test_gui.cpp:49: Failure /////////////////(A)
Expected: imshow(nm, img) doesn't throw an exception.
  Actual: it throws.
Google Test trace:
/home/kmtr/work/opencv4/modules/highgui/test/test_gui.cpp:80: 1
:
:
:
[  FAILED  ] Highgui_GUI.regression (8729 ms)
[ RUN      ] Highgui_GUI.trackbar_unsafe
[ WARN:[email protected]] global window.cpp:701 createTrackbar UI/Trackbar(trackbar@trackbar_test_window): Using 'value' pointer is unsafe and deprecated. Use NULL as value pointer. To fetch trackbar value setup callback.
/home/kmtr/work/opencv4/modules/highgui/test/test_gui.cpp:154: Failure //////////////// (E)
Expected equality of these values:
  (int)1
    Which is: 1
  createTrackbar(trackbar_name, window_name, &value, 100, Foo, &callback_count)
    Which is: 0
/home/kmtr/work/opencv4/modules/highgui/test/test_gui.cpp:155: Failure ////////////////////////// (B)
Expected equality of these values:
  value
    Which is: 50
  getTrackbarPos(trackbar_name, window_name)
    Which is: 0
/home/kmtr/work/opencv4/modules/highgui/test/test_gui.cpp:160: Failure ////////////////////// (C)
Expected equality of these values:
  callback_count_base + 1
    Which is: 1
  callback_count
    Which is: 0
/home/kmtr/work/opencv4/modules/highgui/test/test_gui.cpp:161: Failure /////////////////////////////// (C)
Expected equality of these values:
  90
  value
    Which is: 50
[  FAILED  ] Highgui_GUI.trackbar_unsafe (44 ms)
:
:
[ RUN      ] Highgui_GUI.currentUIFramework
UI framework: "WAYLAND"
[       OK ] Highgui_GUI.currentUIFramework (0 ms)
[----------] 4 tests from Highgui_GUI (8793 ms total)

[----------] Global test environment tear-down
[==========] 4 tests from 1 test case ran. (8793 ms total)
[  PASSED  ] 1 test.
[  FAILED  ] 3 tests, listed below:
[  FAILED  ] Highgui_GUI.regression
[  FAILED  ] Highgui_GUI.trackbar_unsafe
[  FAILED  ] Highgui_GUI.trackbar

 3 FAILED TESTS
kmtr@kmtr-VMware-Virtual-Platform:~/work/build4-main$

Steps to reproduce

build opencv and run ./bin/opencv_test_highgui

Issue submission checklist

  • I report the issue, it's not a question
  • I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
  • I updated to the latest OpenCV version and the issue is still there
  • There is reproducer code and related data files (videos, images, onnx, etc)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions