[OE-core] [PATCH] testimage.bbclass: Add kernel provider and version to testresult

Yeoh Ee Peng ee.peng.yeoh at intel.com
Tue Sep 17 01:27:29 UTC 2019


In running QA testing, we sometime need to select custom  provider for
virtual/kernel and version. To track the selected virtual/kernel provider
and version used during test, we need to add these information to
testresult.

This patch add the virtual/kernel and version into the testresult
configuration section.

Example of virtual/kernel and version added to testresult configuration:
   - "KERNEL_PROVIDER_VERSION": "linux-intel_4.19"

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh at intel.com>
---
 meta/classes/testimage.bbclass | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass
index 525c5a6..194d549 100644
--- a/meta/classes/testimage.bbclass
+++ b/meta/classes/testimage.bbclass
@@ -129,14 +129,30 @@ def testimage_sanity(d):
 def get_testimage_configuration(d, test_type, machine):
     import platform
     from oeqa.utils.metadata import get_layers
+    distro = d.getVar("DISTRO")
+    distrooverride = d.getVar("DISTROOVERRIDES")
+
+    kernel_provider = d.getVar("PREFERRED_PROVIDER_virtual/kernel")
+    for o in distrooverride.split(":"):
+        kernel_provider_override = d.getVar("PREFERRED_PROVIDER_virtual/kernel_%s" % o)
+        if kernel_provider_override:
+            kernel_provider = kernel_provider_override
+
+    kernel_provider_version = d.getVar("PREFERRED_VERSION_%s" % kernel_provider).replace('%', '')
+    for o in distrooverride.split(":"):
+        kernel_provider_version_override = d.getVar("PREFERRED_VERSION_%s_%s" % (kernel_provider, o))
+        if kernel_provider_version_override:
+            kernel_provider_version = kernel_provider_version_override.replace('%', '')
+
     configuration = {'TEST_TYPE': test_type,
                     'MACHINE': machine,
-                    'DISTRO': d.getVar("DISTRO"),
+                    'DISTRO': distro,
                     'IMAGE_BASENAME': d.getVar("IMAGE_BASENAME"),
                     'IMAGE_PKGTYPE': d.getVar("IMAGE_PKGTYPE"),
                     'STARTTIME': d.getVar("DATETIME"),
                     'HOST_DISTRO': oe.lsb.distro_identifier().replace(' ', '-'),
-                    'LAYERS': get_layers(d.getVar("BBLAYERS"))}
+                    'LAYERS': get_layers(d.getVar("BBLAYERS")),
+                    'KERNEL_PROVIDER_VERSION': '%s_%s' % (kernel_provider, kernel_provider_version)}
     return configuration
 get_testimage_configuration[vardepsexclude] = "DATETIME"
 
-- 
2.7.4



More information about the Openembedded-core mailing list