From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/opencv/
Date: Tue, 5 Nov 2024 02:03:23 +0000 (UTC) [thread overview]
Message-ID: <1730772167.2f963ad44f046315f714b5f7c453a86c858d1189.sam@gentoo> (raw)
commit: 2f963ad44f046315f714b5f7c453a86c858d1189
Author: Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Mon Nov 4 17:04:08 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Nov 5 02:02:47 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2f963ad4
media-libs/opencv: refactor tests. split up skip logic per module
The prior logic expanded CMAKE_SKIP_TESTS for each tests. Filtering testcases
that do exist for that test.
Split that up to be set per test.
Do not run the testphase for abi_x86_32 as they are never build.
Skip CUDA related tests when we can not access the render devices. Usually due
to the build user not being in the video group.
Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>
media-libs/opencv/opencv-4.10.0.ebuild | 172 +++++++++++++++++++++++++--------
1 file changed, 134 insertions(+), 38 deletions(-)
diff --git a/media-libs/opencv/opencv-4.10.0.ebuild b/media-libs/opencv/opencv-4.10.0.ebuild
index 790cacb306ff..bd5c10a93814 100644
--- a/media-libs/opencv/opencv-4.10.0.ebuild
+++ b/media-libs/opencv/opencv-4.10.0.ebuild
@@ -434,6 +434,13 @@ src_prepare() {
sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
-i CMakeLists.txt cmake/*cmake || die
+ sed \
+ -e 's:truetype/wqy:wqy-microhei:g' \
+ -i \
+ modules/gapi/test/render/gapi_render_tests_ocv.cpp \
+ modules/gapi/test/render/ftp_render_test.cpp \
+ || die
+
if use contrib; then
cd "${WORKDIR}/${PN}_contrib-${PV}" || die
eapply "${FILESDIR}/${PN}_contrib-4.8.1-rgbd.patch"
@@ -855,6 +862,7 @@ multilib_src_configure() {
if use ffmpeg; then
mycmakeargs+=(
-DOPENCV_GAPI_GSTREAMER="no"
+ -DOPENCV_FFMPEG_DISABLE_MEDIASDK="yes"
)
fi
@@ -897,7 +905,7 @@ multilib_src_configure() {
# if multilib_native_use test; then
if use test; then
# opencv tests assume to be build in Release mode
- CMAKE_BUILD_TYPE="Release"
+ local -x CMAKE_BUILD_TYPE="Release"
mycmakeargs+=(
-DOPENCV_TEST_DATA_PATH="${WORKDIR}/${PN}_extra-${PV}/testdata"
)
@@ -953,72 +961,157 @@ multilib_src_compile() {
}
multilib_src_test() {
+ # no tests on ABI_X86_32
+ ! multilib_is_native_abi && return
+
# NOTE we don't run the tests
use testprograms && return
- CMAKE_SKIP_TESTS=(
- 'Test_ONNX_layers.LSTM_cell_forward/0'
- 'Test_ONNX_layers.LSTM_cell_bidirectional/0'
- 'Test_TensorFlow_layers.Convolution3D/1'
- 'Test_TensorFlow_layers.concat_3d/1'
+ declare -xA OPENCV_SKIP_TESTS
+
+ local -x OPENCV_SKIP_TESTS_core=(
+ 'hal_intrin128.*32x4_CPP_EMULATOR'
+ 'hal_intrin128.*64x2_CPP_EMULATOR'
+ )
+
+ local -x OPENCV_SKIP_TESTS_gapi=(
+ 'AsyncAPICancelation/cancel/*.basic'
+ )
+
+ local -x OPENCV_SKIP_TESTS_videoio=(
+ '*mfx*'
+ 'videoio/videoio_bunny.frame_count/12'
+ )
- 'AsyncAPICancelation/cancel*basic'
+ local -x OPENCV_SKIP_TESTS_video=(
+ 'GOTURN.accuracy'
+ 'DaSiamRPN.accuracy'
+ 'NanoTrack.accuracy_NanoTrack_V1'
+ 'NanoTrack.accuracy_NanoTrack_V2'
+ 'Tracking/DistanceAndOverlap.GOTURN*'
)
if ! use gtk3 && ! use qt6; then
- CMAKE_SKIP_TESTS+=(
- # these fail with parallism
- '^Highgui_*'
+ local -x OPENCV_SKIP_TESTS_highgui=(
+ 'Highgui_GUI.*'
)
+ else
+ addpredict /dev/fuse
fi
if multilib_native_use cuda; then
- CMAKE_SKIP_TESTS+=(
+ local -x OPENCV_SKIP_TESTS_cudaoptflow=(
'CUDA_OptFlow/BroxOpticalFlow.Regression/0'
'CUDA_OptFlow/BroxOpticalFlow.OpticalFlowNan/0'
'CUDA_OptFlow/NvidiaOpticalFlow_1_0.Regression/0'
'CUDA_OptFlow/NvidiaOpticalFlow_2_0.Regression/0'
)
+ if use opengl; then
+ local -x OPENCV_SKIP_TESTS_cudaarithm=(
+ 'OpenGL/Buffer.MapDevice/*'
+ 'OpenGL/*Gpu*'
+ )
+ fi
fi
- if use opengl; then
- CMAKE_SKIP_TESTS+=(
- 'OpenGL/Buffer.MapDevice/*'
- 'OpenGL/*Gpu*'
+ if use contribdnn; then
+ local -x OPENCV_SKIP_TESTS_dnn=(
+ 'Test_ONNX_layers.LSTM_cell_forward/*'
+ 'Test_ONNX_layers.LSTM_cell_bidirectional/*'
+ 'Test_TensorFlow_layers.Convolution3D/*'
+ 'Test_TensorFlow_layers.concat_3d/*'
)
- fi
+ local -x OPENCV_SKIP_TESTS_objdetect=(
+ 'Objdetect_face_detection.regression'
+ 'Objdetect_face_recognition.regression' 'Objdetect_QRCode_Encode_Decode_Structured_Append.regression'
+ )
+ else
+ local -x OPENCV_SKIP_TESTS_objdetect=(
+ 'Objdetect_face_detection.regression'
+ 'Objdetect_face_recognition.regression'
+ )
- if use opencl; then
- CMAKE_SKIP_TESTS+=(
- 'OCL_Arithm/InRange.Mat/\(CV_32S,*'
+ OPENCV_SKIP_TESTS_video+=(
+ 'vittrack.accuracy_vittrack'
+ )
+ fi
+ if use dnnsamples; then
+ local -x OPENCV_SKIP_TESTS_wechat_qrcode=(
+ 'Objdetect_QRCode_points_position.rotate45'
+ 'Objdetect_QRCode_Big.regression'
+ 'Objdetect_QRCode_Tiny.regression'
+ 'Objdetect_QRCode_Multi.regression/*'
+ 'Objdetect_QRCode_Easy_Multi.regression/1'
)
fi
-
- local myctestargs=(
- --test-timeout 180
- )
if multilib_native_use cuda; then
- cuda_add_sandbox -w
- export OPENCV_PARALLEL_BACKEND="threads"
- export DNN_BACKEND_OPENCV="cuda"
+ if ! SANDBOX_WRITE=/dev/nvidiactl test -w /dev/nvidiactl ; then
+ eerror "Can't access the GPU at /dev/nvidiactl."
+ eerror "User $(id -nu) is not in the group \"video\"."
+ local -x TEST_CUDA="false"
+ # local -x OPENCV_PARALLEL_BACKEND="threads"
+ # local -x DNN_BACKEND_OPENCV="cuda"
+
+ local -x OPENCV_SKIP_TESTS_photo=( "CUDA_*" )
+ local -x OPENCV_SKIP_TESTS_stitching=( "CUDA_*" )
+ OPENCV_SKIP_TESTS_video+=( "CUDA_*" )
+ else
+ cuda_add_sandbox -w
+ addwrite "/dev/dri/"
+ [[ -e /dev/udmabuf ]] && addwrite /dev/udmabuf
+ fi
fi
opencv_test() {
- export OPENCV_CORE_PLUGIN_PATH="${BUILD_DIR}/lib"
- export OPENCV_DNN_PLUGIN_PATH="${BUILD_DIR}/lib"
- export OPENCV_VIDEOIO_PLUGIN_PATH="${BUILD_DIR}/lib"
+ cd "${BUILD_DIR}" || die
+
+ # directories to search for _core_ plugins
+ local -x OPENCV_CORE_PLUGIN_PATH="${BUILD_DIR}/lib"
+ # directories to search for _dnn_ plugins
+ local -x OPENCV_DNN_PLUGIN_PATH="${BUILD_DIR}/lib"
+ # directories to search for _videoio_ plugins
+ local -x OPENCV_VIDEOIO_PLUGIN_PATH="${BUILD_DIR}/lib"
+ # # path to extra OpenVINO plugins
+ # local -x OPENCV_DNN_IE_EXTRA_PLUGIN_PATH="${BUILD_DIR}/lib"
+
+ local -x OPENCV_TEMP_PATH="${T}"
+
+ local -x OPENCV_TEST_DATA_PATH="${WORKDIR}/${PN}_extra-${PV}/testdata"
+
+ local test_opts_base=(
+ --skip_unstable=1
+ --test_threads="$(makeopts_jobs)"
+ )
- export OPENCV_TEST_DATA_PATH="${WORKDIR}/${PN}_extra-${PV}/testdata"
+ local results=()
- # Work around zink warnings
- export LIBGL_ALWAYS_SOFTWARE=true
- results=()
- for test in "${BUILD_DIR}/bin/opencv_test_"*; do
- echo "${test}"
- if ! "${test}" --gtest_color=yes --gtest_filter="-$(IFS=: ; echo "${CMAKE_SKIP_TESTS[*]}")"; then
+ local tests
+ readarray -t tests <<< "$(find "${BUILD_DIR}/bin" -name 'opencv_test_*')"
- results+=( "$(basename ${test})" )
+ for test in "${tests[@]}" ; do
+
+ if [[ ${TEST_CUDA} == "false" && ${test} = *opencv_test_cu* ]] ; then
+ eqawarn "Skipping test ${test}"
+ continue
+ fi
+
+ local test_opts=(
+ --gtest_color=yes
+ --gtest_output="json:${BUILD_DIR}/test-reports/$(basename "${test}").json"
+ )
+
+ local testname
+ testname="OPENCV_SKIP_TESTS_$(basename "${test//opencv_test_/}")[*]"
+ if [[ -n "${!testname}" ]]; then
+ test_opts+=(
+ --gtest_filter="-$(IFS=':'; echo "${!testname}")"
+ )
+ fi
+
+ einfo "${test} ${test_opts_base[*]} ${test_opts[*]}"
+ if ! "${test}" "${test_opts_base[@]}" "${test_opts[@]}"; then
+ results+=( "$(basename "${test}")" )
if [[ -z "${OPENCV_TEST_CONTINUE_ON_FAIL}" ]]; then
eerror "${results[*]} failed"
@@ -1027,7 +1120,10 @@ multilib_src_test() {
fi
done
- echo -e "${results[*]}"
+ if [[ -n "${results[*]}" ]]; then
+ eerror "failed: ${results[*]}"
+ die "${results[*]}"
+ fi
}
if multilib_native_use python; then
next reply other threads:[~2024-11-05 2:03 UTC|newest]
Thread overview: 217+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-05 2:03 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-04-11 9:49 [gentoo-commits] repo/gentoo:master commit in: media-libs/opencv/ Sam James
2025-03-14 6:19 Sam James
2025-03-10 5:37 Sam James
2025-01-24 3:30 Sam James
2025-01-04 21:57 Sam James
2024-12-23 8:01 Sam James
2024-12-13 11:49 Joonas Niilola
2024-12-08 18:26 Sam James
2024-12-05 18:01 Sam James
2024-11-05 20:31 Sam James
2024-11-05 4:22 Sam James
2024-11-05 2:58 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-11-05 2:03 Sam James
2024-10-08 7:09 Florian Schmaus
2024-10-07 2:52 Sam James
2024-10-02 13:23 Arthur Zamarin
2024-10-02 11:37 Arthur Zamarin
2024-10-02 11:35 Arthur Zamarin
2024-08-16 3:58 Sam James
2024-08-16 3:58 Sam James
2024-07-31 8:47 Joonas Niilola
2024-07-31 8:47 Joonas Niilola
2024-05-20 16:25 Sam James
2024-04-22 3:40 Michał Górny
2024-04-01 7:58 Joonas Niilola
2024-03-23 13:44 Sam James
2024-03-18 17:06 Sam James
2024-01-23 20:35 Andreas Sturmlechner
2024-01-18 15:19 Joonas Niilola
2024-01-18 15:19 Joonas Niilola
2024-01-16 20:00 Arthur Zamarin
2024-01-12 21:44 Sam James
2024-01-10 13:10 Sam James
2024-01-10 12:33 Sam James
2024-01-10 12:33 Sam James
2023-11-27 11:23 Sam James
2023-11-16 15:11 Florian Schmaus
2023-11-16 15:11 Florian Schmaus
2023-11-16 15:11 Florian Schmaus
2023-10-10 7:09 Joonas Niilola
2023-10-09 16:21 Arthur Zamarin
2023-08-26 5:04 Sam James
2023-08-24 22:37 Sam James
2023-08-24 22:37 Sam James
2023-08-22 13:12 Andrew Ammerlaan
2023-08-21 19:57 Sam James
2023-07-15 6:08 Sam James
2023-05-17 11:36 Joonas Niilola
2023-05-17 8:16 Joonas Niilola
2023-03-04 7:18 Sam James
2023-02-21 20:00 Alfredo Tupone
2022-12-03 4:47 WANG Xuerui
2022-09-15 16:43 Andreas Sturmlechner
2022-09-15 15:11 Agostino Sarubbo
2022-09-15 6:48 Agostino Sarubbo
2022-09-15 6:44 Joonas Niilola
2022-07-08 7:41 Sam James
2022-07-08 0:57 Sam James
2022-06-07 6:59 Sam James
2022-06-07 6:58 Sam James
2022-06-07 4:37 Sam James
2022-05-22 20:47 Sam James
2022-04-21 20:49 Matt Turner
2022-04-19 5:50 Matt Turner
2022-04-14 6:55 Sam James
2022-04-13 15:02 Sam James
2022-03-01 0:02 Sam James
2022-02-28 23:58 Sam James
2022-02-28 5:21 Sam James
2022-02-15 19:51 Sam James
2022-01-25 19:01 Amy Liffey
2021-12-28 6:58 Sam James
2021-12-13 2:07 Sam James
2021-12-12 23:49 Sam James
2021-12-12 23:48 Sam James
2021-12-04 19:09 David Seifert
2021-12-03 0:54 Sam James
2021-11-22 9:07 Sam James
2021-11-09 12:05 Arthur Zamarin
2021-10-29 22:23 Sam James
2021-10-26 18:40 Amy Liffey
2021-09-09 7:39 Agostino Sarubbo
2021-09-08 0:42 Sam James
2021-09-07 11:55 Agostino Sarubbo
2021-08-25 10:16 Pacho Ramos
2021-07-21 21:57 Marek Szuba
2021-07-21 21:57 Marek Szuba
2021-07-21 21:57 Marek Szuba
2021-06-03 0:43 Sam James
2021-05-26 9:13 Agostino Sarubbo
2021-05-23 13:05 Stefan Strogin
2021-05-17 22:30 Sam James
2021-01-22 21:11 Sam James
2021-01-22 21:11 Sam James
2020-12-27 4:34 Sam James
2020-11-12 15:27 Sam James
2020-11-11 15:38 Sam James
2020-11-11 4:31 Sam James
2020-10-18 14:49 Sam James
2020-10-16 21:48 Sam James
2020-10-12 16:15 Andreas Sturmlechner
2020-10-12 16:11 Sam James
2020-10-11 19:16 Sam James
2020-10-11 19:16 Sam James
2020-06-25 17:08 Andreas Sturmlechner
2020-06-22 6:57 Agostino Sarubbo
2020-06-20 15:45 Thomas Deutschmann
2020-04-25 18:45 Mikle Kolyada
2020-03-09 13:00 David Seifert
2020-02-09 16:29 Michał Górny
2020-01-30 21:26 Michał Górny
2020-01-30 21:26 Michał Górny
2019-12-26 14:42 David Seifert
2019-12-25 17:32 Pacho Ramos
2019-12-25 16:57 Pacho Ramos
2019-11-30 19:48 Amy Liffey
2019-11-30 19:48 Amy Liffey
2019-11-30 19:48 Amy Liffey
2019-11-28 20:02 Amy Liffey
2019-11-28 16:56 Amy Liffey
2019-11-28 10:00 Amy Liffey
2019-08-28 8:19 David Seifert
2019-08-04 13:58 Alexey Shvetsov
2019-05-16 19:30 Aaron Bauman
2019-05-16 5:54 Michał Górny
2019-03-26 20:47 Georgy Yakovlev
2018-12-02 22:30 Andreas K. Hüttel
2018-11-27 18:29 Amy Liffey
2018-10-19 8:51 Michał Górny
2018-08-18 6:13 Amy Liffey
2018-08-16 15:09 Amy Liffey
2018-08-16 15:09 Amy Liffey
2018-08-16 15:09 Amy Liffey
2018-05-28 12:56 Amy Liffey
2018-05-25 20:28 Amy Liffey
2018-05-25 19:34 Amy Liffey
2017-11-27 7:33 Amy Liffey
2017-11-27 0:20 Thomas Deutschmann
2017-11-24 13:23 Agostino Sarubbo
2017-11-20 18:50 Andreas Sturmlechner
2017-11-20 18:50 Andreas Sturmlechner
2017-11-20 18:50 Andreas Sturmlechner
2017-11-01 17:25 Amy Liffey
2017-10-31 17:09 Amy Liffey
2017-10-09 14:54 Amy Liffey
2017-09-11 20:43 Michał Górny
2017-09-11 14:32 Michał Górny
2017-09-06 21:00 Michał Górny
2017-09-01 11:39 Amy Liffey
2017-08-26 20:02 Michał Górny
2017-08-21 22:30 Michał Górny
2017-08-14 19:49 Michał Górny
2017-08-11 13:21 Michał Górny
2017-08-11 13:21 Michał Górny
2017-07-09 9:48 Alexis Ballier
2017-02-09 20:04 Amy Liffey
2017-02-07 18:51 Johannes Huber
2017-01-23 15:46 Agostino Sarubbo
2017-01-23 13:51 Agostino Sarubbo
2017-01-20 14:37 Amy Liffey
2016-12-14 23:31 Amy Winston
2016-12-10 21:47 David Seifert
2016-12-10 21:25 Michał Górny
2016-12-10 21:25 Michał Górny
2016-11-12 23:37 David Seifert
2016-10-21 16:06 Michael Palimaka
2016-10-20 21:23 Michael Palimaka
2016-10-06 6:11 Amy Winston
2016-10-02 17:41 Amy Winston
2016-08-20 19:01 Amy Winston
2016-08-06 16:51 Michał Górny
2016-06-09 13:54 Amy Winston
2016-06-04 19:06 Amy Winston
2016-05-24 15:08 Amy Winston
2016-05-24 15:08 Amy Winston
2016-05-15 13:16 Mikle Kolyada
2016-05-14 13:52 Amy Winston
2016-03-13 19:06 Amy Winston
2016-03-13 19:06 Amy Winston
2016-02-23 12:19 Amy Winston
2016-01-31 14:56 Andreas Hüttel
2016-01-31 14:56 Andreas Hüttel
2016-01-19 21:47 Amy Winston
2016-01-19 17:49 Amy Winston
2016-01-19 17:49 Amy Winston
2016-01-19 17:49 Amy Winston
2016-01-19 17:49 Amy Winston
2015-12-16 9:06 Amy Winston
2015-11-26 21:13 Amy Winston
2015-11-10 22:37 Amy Winston
2015-10-31 8:27 Amy Winston
2015-10-30 23:55 Amy Winston
2015-10-30 17:09 Amy Winston
2015-08-18 15:41 Amy Winston
2015-08-18 14:19 Amy Winston
2015-08-18 12:14 Amy Winston
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1730772167.2f963ad44f046315f714b5f7c453a86c858d1189.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox