There are *so many* limitations of qemu-user I'm not sure this is
actually useful.

(speaking as someone who tried this with Python a while ago).

What recipes has this successfully worked on?

Ross

On Mon, 21 Feb 2022 at 08:51, Jose Quaresma <[email protected]> wrote:
>
> The generic exe_wrapper introcuced in 40349dc5 can be used to run the
> meson tests when build the receipe. This patch add the meson_test task
> on the meson bbclass that adds this possibility.
>
> The exe_wrapper will run using the qemu usermode and because of that it
> has some limitations, so don't expect the same results when it runs
> natively on target.
>
> Running the tests at build time is upstream way for testing but is not
> possible in OE as we always croos-compile. This can be useful in some
> integration processes and for debuging and it adds the possibility to
> run the test in an interactive way using the devtool build for example.
>
> There are two variable for that:
>  MESON_QEMU_WRAPPER_TEST_ENABLED: this enables the test when it's "1"
>  EXTRA_OEMESON_TEST: this is used to add extra args
>
> Some results when using this patch in the bigest meson project
> on OE-core are the folloing:
>
> cat <<'EOF' >>conf/local.conf
> MESON_QEMU_WRAPPER_TEST_ENABLED:pn-systemd-boot = "1"
> EOF
>
> bitbake -c do_meson_test -v systemd-boot
>
> Ok:                 821
> Expected Fail:      0
> Fail:               95
> Unexpected Pass:    0
> Skipped:            33
> Timeout:            0
>
> cat <<'EOF' >>conf/local.conf
> MESON_QEMU_WRAPPER_TEST_ENABLED:pn-glib-2.0 = "1"
> EOF
>
> bitbake -c do_meson_test -v glib-2.0
>
> Ok:                 197
> Expected Fail:      0
> Fail:               76
> Unexpected Pass:    0
> Skipped:            0
> Timeout:            2
>
> cat <<'EOF' >>conf/local.conf
> MESON_QEMU_WRAPPER_TEST_ENABLED:pn-gstreamer1.0 = "1"
> EOF
>
> bitbake -c do_meson_test -v gstreamer1.0
>
> Ok:                 95
> Expected Fail:      0
> Fail:               10
> Unexpected Pass:    0
> Skipped:            1
> Timeout:            0
>
> Signed-off-by: Jose Quaresma <[email protected]>
> ---
>  meta/classes/meson.bbclass | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
> index 0bfe945811..020a59a3c0 100644
> --- a/meta/classes/meson.bbclass
> +++ b/meta/classes/meson.bbclass
> @@ -179,3 +179,19 @@ meson_do_install() {
>  }
>
>  EXPORT_FUNCTIONS do_configure do_compile do_install
> +
> +EXTRA_OEMESON_TEST ?= ""
> +
> +do_meson_test() {
> +    bbwarn "don't expect the same results when it runs natively as it will 
> run in qemu usermode (that has its own limitations)"
> +    meson test -C ${B} ${EXTRA_OEMESON_TEST}
> +}
> +do_meson_test[vardeps] += "EXTRA_OEMESON_TEST"
> +
> +MESON_QEMU_WRAPPER_RUNTEST = ""
> +MESON_QEMU_WRAPPER_RUNTEST:class-target = 
> "${@d.getVar('MESON_QEMU_WRAPPER_TEST_ENABLED') == '1' and 
> d.getVar('EXEWRAPPER_ENABLED') == 'True'}"
> +
> +python() {
> +    if d.getVar('MESON_QEMU_WRAPPER_RUNTEST') == 'True':
> +       bb.build.addtask('meson_test', 'do_install', 'do_compile', d)
> +}
> --
> 2.35.1
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#162053): 
https://lists.openembedded.org/g/openembedded-core/message/162053
Mute This Topic: https://lists.openembedded.org/mt/89289917/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to