What might work better without code complications is testimage.bbclass
setting only the minimum set (no ptests):
+TESTIMAGE_FAILED_QA_ARTIFACTS ??= "\
+ ${localstatedir}/log \
+ ${sysconfdir}/version \
+ ${sysconfdir}/os-release \
"
Then core-image-ptest.bb should append "${libdir}/{MCNAME}/ptest" to
that. As that same image recipe installs only a single ptest via
IMAGE_INSTALL:append, and the artifacts are retrieved only if that
ptest would fail, this would achieve the same outcome. Other images
(which can potentially include many ptests) can then set what
artifacts to retrieve themselves as they please.
Alex
On Wed, 7 Jun 2023 at 10:49, Richard Purdie
<[email protected]> wrote:
>
> On Wed, 2023-06-07 at 10:30 +0200, Alexis Lothoré via
> lists.openembedded.org wrote:
> > Add a basic artifacts retrievers in testimage class which:
> > - triggers when at least one runtime test fails but tests execution
> > encountered no major issue
> > - reads a list of paths to retrieve from TESTIMAGE_FAILED_QA_ARTIFACTS
> > - checks for artifacts presence on target
> > - retrieve those files over scp thanks to existing ssh class
> > - store those files in an "artifacts" directory in "tmp/log/oeqa/<image>"
> >
> > This implementation assumes that the SSH or Qemu target has run and
> > finished gracefully. If tests do not finish because of an exception,
> > artifacts will not be retrieved
> >
> > Bring partial solution to [YOCTO #14901]
> >
> > Signed-off-by: Alexis Lothoré <[email protected]>
> > ---
> > Changes since v1:
> > - only gather artifacts in nominal case (ie qemu runs without any raised
> > exception)
> > - list artifacts directly in variable instead of using external file
> > - use standard variables in artifacts paths
> > - allow glob patterns usage in artifacts paths
> > - expand/filter artifacts list on target before retrieving them
> > - tune default artifacts list
> > ---
> > meta/classes-recipe/testimage.bbclass | 49 +++++++++++++++++++++++++++
> > 1 file changed, 49 insertions(+)
> >
> > diff --git a/meta/classes-recipe/testimage.bbclass
> > b/meta/classes-recipe/testimage.bbclass
> > index b48cd96575d2..c6ce74a9e7a8 100644
> > --- a/meta/classes-recipe/testimage.bbclass
> > +++ b/meta/classes-recipe/testimage.bbclass
> > @@ -18,6 +18,16 @@ inherit image-artifact-names
> >
> > TESTIMAGE_AUTO ??= "0"
> >
> > +# When any test fails, TESTIMAGE_FAILED_QA ARTIFACTS will be parsed and for
> > +# each entry in it, if artifact pointed by path description exists on
> > target,
> > +# it will be retrieved onto host
> > +
> > +TESTIMAGE_FAILED_QA_ARTIFACTS ??= "\
> > + ${localstatedir}/log \
> > + ${sysconfdir}/version \
> > + ${sysconfdir}/os-release \
> > + ${libdir}/*/ptest"
>
> I know Alex Kanavin asked for this but I'm really not sure
> ${libdir}/*/ptest is a great idea. This will effectively copy the
> entire ptest package files for every ptest on the image. Now we split
> ptests to different images it is less of an issue but it is still
> potentially rather large. Could we at least limit it to failing ptests?
>
> Cheers,
>
> Richard
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#182466):
https://lists.openembedded.org/g/openembedded-core/message/182466
Mute This Topic: https://lists.openembedded.org/mt/99380468/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-