|
@@ -3,6 +3,7 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
|
|
|
from oeqa.core.decorator.oeid import OETestID
|
|
|
from oeqa.utils.sshcontrol import SSHControl
|
|
|
import os
|
|
|
+import json
|
|
|
|
|
|
class ImageFeatures(OESelftestTestCase):
|
|
|
|
|
@@ -130,6 +131,40 @@ class ImageFeatures(OESelftestTestCase):
|
|
|
# check if the resulting gzip is valid
|
|
|
self.assertTrue(runCmd('gzip -t %s' % gzip_path))
|
|
|
|
|
|
+ def test_hypervisor_fmts(self):
|
|
|
+ """
|
|
|
+ Summary: Check various hypervisor formats
|
|
|
+ Expected: 1. core-image-minimal can be built with vmdk, vdi and
|
|
|
+ qcow2 support.
|
|
|
+ 2. qemu-img says each image has the expected format
|
|
|
+ Product: oe-core
|
|
|
+ Author: Tom Rini <trini@konsulko.com>
|
|
|
+ """
|
|
|
+
|
|
|
+ img_types = [ 'vmdk', 'vdi', 'qcow2' ]
|
|
|
+ features = ""
|
|
|
+ for itype in img_types:
|
|
|
+ features += 'IMAGE_FSTYPES += "wic.%s"\n' % itype
|
|
|
+ self.write_config(features)
|
|
|
+
|
|
|
+ image_name = 'core-image-minimal'
|
|
|
+ bitbake(image_name)
|
|
|
+
|
|
|
+ deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
|
|
|
+ link_name = get_bb_var('IMAGE_LINK_NAME', image_name)
|
|
|
+ for itype in img_types:
|
|
|
+ image_path = os.path.join(deploy_dir_image, "%s.wic.%s" %
|
|
|
+ (link_name, itype))
|
|
|
+
|
|
|
+ # check if result image file is in deploy directory
|
|
|
+ self.assertTrue(os.path.exists(image_path))
|
|
|
+
|
|
|
+ # check if result image is vmdk
|
|
|
+ sysroot = get_bb_var('STAGING_DIR_NATIVE', 'core-image-minimal')
|
|
|
+ result = runCmd('qemu-img info --output json %s' % image_path,
|
|
|
+ native_sysroot=sysroot)
|
|
|
+ self.assertTrue(json.loads(result.output).get('format') == itype)
|
|
|
+
|
|
|
def test_long_chain_conversion(self):
|
|
|
"""
|
|
|
Summary: Check for chaining many CONVERSION_CMDs together
|