diff mbox series

[v4] testimage: retrieve ptests directory when ptests fail

Message ID 20240206152910.436447-1-alexis.lothore@bootlin.com
State Accepted, archived
Commit 9357ab6c47f0a0a7000cb18358bc9775fd54e1f7
Headers show
Series [v4] testimage: retrieve ptests directory when ptests fail | expand

Commit Message

Alexis Lothoré Feb. 6, 2024, 3:29 p.m. UTC
From: Alexis Lothoré <alexis.lothore@bootlin.com>

TESTIMAGE_FAILED_QA_ARTIFACTS is set with a default, minimal list of files
to retrieve whenever a runtime test fails.
Add ptests directory to the list so we can get ptests artifacts (eg: logs)
whenever a ptest fails. By appending the ptest directory with the
multiconfig component in the path, only failing ptests will lead to
corresponding ptest artifacts retrieval, instead of all ptests artifacts
retrieval. While doing this addition, reinforce default value using "="
operator to make sure to get the default list in any case.

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
---
This series is now self-contained in a single patch. After going back and
forth on where and how to properly add the ptests artifacts, only testimage
is finally affected. Additionally to Richard's suggestion in [1], the
ptests directory is added conditionally: otherwise, non-ptests images would
try to scp a non-existing directory (and it would fail silently)

Link to v3: [1]

Changes in v4:
- keep ptests artifacts addition in testimage.bbclass to avoid parsing
  order issues
- check for DISTRO_FEATURES to know if ptests artifacts should be retrieved
  in case of failure

Changes in v3:
- slightly reword commit message body

Changes in v1 (since being picked in new series)
- use += instead of append syntax

[1] https://lore.kernel.org/openembedded-core/20240205143757.81826-1-alexis.lothore@bootlin.com/
---
 meta/classes-recipe/testimage.bbclass        | 5 ++++-
 meta/recipes-core/images/core-image-ptest.bb | 1 -
 2 files changed, 4 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/meta/classes-recipe/testimage.bbclass b/meta/classes-recipe/testimage.bbclass
index f36d9418914f..281de4784f31 100644
--- a/meta/classes-recipe/testimage.bbclass
+++ b/meta/classes-recipe/testimage.bbclass
@@ -22,11 +22,14 @@  TESTIMAGE_AUTO ??= "0"
 # each entry in it, if artifact pointed by path description exists on target,
 # it will be retrieved onto host
 
-TESTIMAGE_FAILED_QA_ARTIFACTS ??= "\
+TESTIMAGE_FAILED_QA_ARTIFACTS = "\
     ${localstatedir}/log \
     ${sysconfdir}/version \
     ${sysconfdir}/os-release"
 
+# If some ptests are run and fail, retrieve corresponding directories
+TESTIMAGE_FAILED_QA_ARTIFACTS += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '${libdir}/${MCNAME}/ptest', '', d)}"
+
 # You can set (or append to) TEST_SUITES in local.conf to select the tests
 # which you want to run for your target.
 # The test names are the module names in meta/lib/oeqa/runtime/cases.
diff --git a/meta/recipes-core/images/core-image-ptest.bb b/meta/recipes-core/images/core-image-ptest.bb
index b6f5c2fd6049..862e44f5e67c 100644
--- a/meta/recipes-core/images/core-image-ptest.bb
+++ b/meta/recipes-core/images/core-image-ptest.bb
@@ -42,4 +42,3 @@  python () {
     if not d.getVar("MCNAME"):
         raise bb.parse.SkipRecipe("No class extension set")
 }
-