Hello Alexander, Richard, Thanks for the feedback. Indeed my testing setup is quite minimal, so it may not reflect how many files may be pulled in real cases.
On 6/7/23 11:20, Alexander Kanavin wrote: > 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. I am not familiar with multiconfig, so I'll have to document myself before trying what you suggest, especially to make sure it will not make the retriever too dependant on a proper multiconfig definition. Thanks, Alexis > > Alex > > On Wed, 7 Jun 2023 at 10:49, Richard Purdie > <richard.pur...@linuxfoundation.org> 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é <alexis.loth...@bootlin.com> >>> --- >>> 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 >> >> >> >> >> -- Alexis Lothoré, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#182472): https://lists.openembedded.org/g/openembedded-core/message/182472 Mute This Topic: https://lists.openembedded.org/mt/99380468/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-