On Wed, Dec 24, 2025 at 12:10 PM Gyorgy Sarvari <[email protected]>
wrote:

> On 12/24/25 21:05, Khem Raj wrote:
> >
> >
> > On Tue, Dec 23, 2025 at 4:17 AM Gyorgy Sarvari via
> > lists.openembedded.org <http://lists.openembedded.org>
> > <[email protected]> wrote:
> >
> >     The execution takes under 10s.
> >
> >     Sample output:
> >
> >     root@qemux86-64:~# ptest-runner
> >     START: ptest-runner
> >     2025-12-23T11:36
> >     BEGIN: /usr/lib/freerdp3/ptest
> >     PASS: TestSynchInit
> >     PASS: TestSynchEvent
> >     PASS: TestSynchMutex
> >     [...many lines...]
> >     PASS: TestClientRdpFile
> >     PASS: TestClientChannels
> >     PASS: TestClientCmdLine
> >     DURATION: 7
> >     END: /usr/lib/freerdp3/ptest
> >     2025-12-23T11:37
> >     STOP: ptest-runner
> >     TOTAL: 1 FAIL: 0
> >
> >     Signed-off-by: Gyorgy Sarvari <[email protected]>
> >     ---
> >
> >     v2: when I finished v1, I reordered the test data copying part, to
> >     make it nice.
> >         But this reordering made destination of testdata copying to be
> >     non-existent.
> >         v2 created the test folder explicitly in do_install_ptest
> >
> >      .../include/ptest-packagelists-meta-oe.inc    |  1 +
> >      .../freerdp/freerdp3/run-ptest                |  2 +
> >      .../freerdp/freerdp3_3.20.0.bb <http://freerdp3_3.20.0.bb>
> >             | 53 ++++++++++++++++++-
> >      3 files changed, 54 insertions(+), 2 deletions(-)
> >      create mode 100644
> meta-oe/recipes-support/freerdp/freerdp3/run-ptest
> >
> >     diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> >     b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> >     index 1f21db7ae1..556fa8a148 100644
> >     --- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> >     +++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> >     @@ -16,6 +16,7 @@ PTESTS_FAST_META_OE = "\
> >          ${@bb.utils.contains('DISTRO_FEATURES', 'systemd',
> >     'dbus-broker', '', d)} \
> >          duktape \
> >          exiv2 \
> >     +    freerdp3 \
> >          fuse3 \
> >          function2 \
> >          fwupd \
> >     diff --git a/meta-oe/recipes-support/freerdp/freerdp3/run-ptest
> >     b/meta-oe/recipes-support/freerdp/freerdp3/run-ptest
> >     new file mode 100644
> >     index 0000000000..1a9b69c27e
> >     --- /dev/null
> >     +++ b/meta-oe/recipes-support/freerdp/freerdp3/run-ptest
> >     @@ -0,0 +1,2 @@
> >     +#!/bin/sh
> >     +ctest | sed 's/\*\*\*/   /g' | awk '/Test
> >     +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL");
> >     gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
> >     diff --git a/meta-oe/recipes-support/freerdp/freerdp3_3.20.0.bb
> >     <http://freerdp3_3.20.0.bb>
> >     b/meta-oe/recipes-support/freerdp/freerdp3_3.20.0.bb
> >     <http://freerdp3_3.20.0.bb>
> >     index 07e6db69b7..08bea845f0 100644
> >     --- a/meta-oe/recipes-support/freerdp/freerdp3_3.20.0.bb
> >     <http://freerdp3_3.20.0.bb>
> >     +++ b/meta-oe/recipes-support/freerdp/freerdp3_3.20.0.bb
> >     <http://freerdp3_3.20.0.bb>
> >     @@ -4,11 +4,13 @@ LICENSE = "Apache-2.0"
> >      LIC_FILES_CHKSUM =
> >     "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
> >
> >      DEPENDS = "openssl libusb1 uriparser cairo icu pkcs11-helper zlib
> >     jpeg json-c"
> >     +RDEPENDS:${PN}-ptest += "cmake coreutils"
> >
> >     -inherit pkgconfig cmake
> >     +inherit pkgconfig cmake ptest
> >
> >      SRCREV = "b8e790a02ede8dd64ff7177fb9027d1844e66bb6"
> >     -SRC_URI =
> >     "git://
> github.com/FreeRDP/FreeRDP.git;branch=master;protocol=https;tag=${PV}
> <http://github.com/FreeRDP/FreeRDP.git;branch=master;protocol=https;tag=$%7BPV%7D>
> >     <
> http://github.com/FreeRDP/FreeRDP.git;branch=master;protocol=https;tag=$%7BPV%7D
> >"
> >     +SRC_URI =
> >     "git://
> github.com/FreeRDP/FreeRDP.git;branch=master;protocol=https;tag=${PV}
> <http://github.com/FreeRDP/FreeRDP.git;branch=master;protocol=https;tag=$%7BPV%7D>
> >     <
> http://github.com/FreeRDP/FreeRDP.git;branch=master;protocol=https;tag=$%7BPV%7D
> >
> >     \
> >     +           file://run-ptest"
> >
> >
> >      CVE_PRODUCT = "freerdp"
> >     @@ -17,6 +19,7 @@ PACKAGECONFIG ??= " \
> >          ${@bb.utils.filter('DISTRO_FEATURES', 'pam pulseaudio wayland
> >     x11', d)} \
> >          ${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial',
> >     'ffmpeg', '', d)} \
> >          gstreamer cups pcsc \
> >     +    ${@bb.utils.contains('PTEST_ENABLED', '1', 'test openh264',
> >     '', d)} \
> >
> >
> > openh264 is neither in core nor in meta-oe, its in meta-multimedia and
> > meta-oe does not depend upon it rather its other way around
> > I think this needs to added via a dynamic-layer
>
> If I remember well, it's only one testcase that requires it. Maybe it
> would be cleaner if I would just to bin that?
>

That is a good compromise. Add a comment in the recipe so we remember the
context in future.


>
>
> >
> >
> >      "
> >
> >      EXTRA_OECMAKE = " \
> >     @@ -54,12 +57,58 @@ PACKAGECONFIG[opencl] =
> >     "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,virtual/libopencl1"
> >      PACKAGECONFIG[lame] = "-DWITH_LAME=ON,-DWITH_LAME=OFF,lame"
> >      PACKAGECONFIG[faad] = "-DWITH_FAAD=ON,-DWITH_FAAD=OFF,faad2"
> >      PACKAGECONFIG[faac] = "-DWITH_FAAC=ON,-DWITH_FAAC=OFF,faac"
> >     +PACKAGECONFIG[test] = "-DBUILD_TESTING=ON,-DBUILD_TESTING=OFF"
> >     +
> >     +do_configure:prepend() {
> >     +    sed -i
> >
>  
> 's|TEST_SOURCE_DIR="\${CMAKE_CURRENT_SOURCE_DIR}"|TEST_SOURCE_DIR="${PTEST_PATH}/test"|'
> >     ${S}/client/common/test/CMakeLists.txt
> >     +    sed -i 's|\${CMAKE_SOURCE_DIR}|${PTEST_PATH}|'
> >     ${S}/winpr/libwinpr/clipboard/test/CMakeLists.txt
> >     +    sed -i
> >     's|="\${CMAKE_CURRENT_SOURCE_DIR}|="${PTEST_PATH}/test|'
> >     ${S}/winpr/libwinpr/utils/test/CMakeLists.txt
> >     +    sed -i
> >     's|="\${CMAKE_CURRENT_BINARY_DIR}|="${PTEST_PATH}/test|'
> >     ${S}/winpr/libwinpr/utils/test/CMakeLists.txt
> >     +    sed -i
> >     's|="\${CMAKE_CURRENT_SOURCE_DIR}|="${PTEST_PATH}/test|'
> >     ${S}/libfreerdp/codec/test/CMakeLists.txt
> >     +    sed -i
> >     's|="\${CMAKE_CURRENT_BINARY_DIR}|="${PTEST_PATH}/test|'
> >     ${S}/libfreerdp/codec/test/CMakeLists.txt
> >     +
> >     +}
> >
> >      do_configure:append() {
> >          sed -i -e 's|${WORKDIR}||g' ${B}/include/freerdp/buildflags.h
> >          sed -i -e 's|${WORKDIR}||g'
> ${B}/winpr/include/winpr/buildflags.h
> >      }
> >
> >     +do_install_ptest() {
> >     +    install -d ${D}${PTEST_PATH}/test
> >     +    # main CTestTestfile.cmake file
> >     +    cp ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}
> >     +    # the actual test executables
> >     +    cp -r ${B}/Testing ${D}${PTEST_PATH}
> >     +    # test data
> >     +    cp ${S}/winpr/libwinpr/utils/test/*bmp ${D}${PTEST_PATH}/test/
> >     +    cp ${S}/libfreerdp/codec/test/*bmp ${D}${PTEST_PATH}/test/
> >     +    cp -r ${S}/client/common/test/* ${D}${PTEST_PATH}/test/
> >     +    cp -r ${S}/resources ${D}${PTEST_PATH}
> >     +    cp -r ${S}/libfreerdp/codec/test/planar ${D}${PTEST_PATH}/test/
> >     +    cp -r ${S}/libfreerdp/codec/test/interleaved
> >     ${D}${PTEST_PATH}/test/
> >     +
> >     +    cd ${B}
> >     +    # the test definitions, how to execute the tests
> >     +    find . -name CTestTestfile.cmake -exec install -Dm 0644 {}
> >     ${D}${PTEST_PATH}/{} \;
> >     +
> >     +    for testfile in $(find ${D}${PTEST_PATH} -name
> >     CTestTestfile.cmake); do
> >     +        # these are comments only, containing ${S} and ${B}, at
> >     the top of each file
> >     +        sed -i "s,Source directory: ${S},<source_dir>," $testfile
> >     +        sed -i "s,Build directory: ${B},<build_dir>," $testfile
> >     +
> >     +        # change the ${B} to ${PTEST_PATH}, so the files will be
> >     searches at the correct place
> >     +        sed -i "s,${B}/Testing,${PTEST_PATH}/Testing,g" $testfile
> >     +
> >     +        # These add some extra traceability info to the tests, to
> >     pair them with CMakeLists.txt files,
> >     +        # containing ${B}.
> >     +        # They are not needed for test execution, just remove the
> >     whole line.
> >     +        sed -i "s,set_tests_properties.*_BACKTRACE_TRIPLES.*,,"
> >     $testfile
> >     +    done
> >     +
> >     +    rm ${D}${PTEST_PATH}/resources/conv_to_ewm_prop.py
> >     +}
> >     +
> >      PACKAGES =+ "${PN}-proxy-plugins"
> >
> >      FILES:${PN}-proxy-plugins += "${libdir}/${BPN}/proxy/*.so*"
> >
> >     
> >
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#122899): 
https://lists.openembedded.org/g/openembedded-devel/message/122899
Mute This Topic: https://lists.openembedded.org/mt/116914811/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to