diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/lib/oeqa/selftest/cases/manifest.py')
-rw-r--r-- | import-layers/yocto-poky/meta/lib/oeqa/selftest/cases/manifest.py | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/cases/manifest.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/cases/manifest.py deleted file mode 100644 index 146071934..000000000 --- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/cases/manifest.py +++ /dev/null @@ -1,166 +0,0 @@ -import os - -from oeqa.selftest.case import OESelftestTestCase -from oeqa.utils.commands import get_bb_var, get_bb_vars, bitbake -from oeqa.core.decorator.oeid import OETestID - -class ManifestEntry: - '''A manifest item of a collection able to list missing packages''' - def __init__(self, entry): - self.file = entry - self.missing = [] - -class VerifyManifest(OESelftestTestCase): - '''Tests for the manifest files and contents of an image''' - - @classmethod - def check_manifest_entries(self, manifest, path): - manifest_errors = [] - try: - with open(manifest, "r") as mfile: - for line in mfile: - manifest_entry = os.path.join(path, line.split()[0]) - self.logger.debug("{}: looking for {}"\ - .format(self.classname, manifest_entry)) - if not os.path.isfile(manifest_entry): - manifest_errors.append(manifest_entry) - self.logger.debug("{}: {} not found"\ - .format(self.classname, manifest_entry)) - except OSError as e: - self.logger.debug("{}: checking of {} failed"\ - .format(self.classname, manifest)) - raise e - - return manifest_errors - - #this will possibly move from here - @classmethod - def get_dir_from_bb_var(self, bb_var, target = None): - target == self.buildtarget if target == None else target - directory = get_bb_var(bb_var, target); - if not directory or not os.path.isdir(directory): - self.logger.debug("{}: {} points to {} when target = {}"\ - .format(self.classname, bb_var, directory, target)) - raise OSError - return directory - - @classmethod - def setUpClass(self): - - super(VerifyManifest, self).setUpClass() - self.buildtarget = 'core-image-minimal' - self.classname = 'VerifyManifest' - - self.logger.info("{}: doing bitbake {} as a prerequisite of the test"\ - .format(self.classname, self.buildtarget)) - if bitbake(self.buildtarget).status: - self.logger.debug("{} Failed to setup {}"\ - .format(self.classname, self.buildtarget)) - self.skipTest("{}: Cannot setup testing scenario"\ - .format(self.classname)) - - @OETestID(1380) - def test_SDK_manifest_entries(self): - '''Verifying the SDK manifest entries exist, this may take a build''' - - # the setup should bitbake core-image-minimal and here it is required - # to do an additional setup for the sdk - sdktask = '-c populate_sdk' - bbargs = sdktask + ' ' + self.buildtarget - self.logger.debug("{}: doing bitbake {} as a prerequisite of the test"\ - .format(self.classname, bbargs)) - if bitbake(bbargs).status: - self.logger.debug("{} Failed to bitbake {}"\ - .format(self.classname, bbargs)) - self.skipTest("{}: Cannot setup testing scenario"\ - .format(self.classname)) - - - pkgdata_dir = reverse_dir = {} - mfilename = mpath = m_entry = {} - # get manifest location based on target to query about - d_target= dict(target = self.buildtarget, - host = 'nativesdk-packagegroup-sdk-host') - try: - mdir = self.get_dir_from_bb_var('SDK_DEPLOY', self.buildtarget) - for k in d_target.keys(): - bb_vars = get_bb_vars(['SDK_NAME', 'SDK_VERSION'], self.buildtarget) - mfilename[k] = "{}-toolchain-{}.{}.manifest".format( - bb_vars['SDK_NAME'], - bb_vars['SDK_VERSION'], - k) - mpath[k] = os.path.join(mdir, mfilename[k]) - if not os.path.isfile(mpath[k]): - self.logger.debug("{}: {} does not exist".format( - self.classname, mpath[k])) - raise IOError - m_entry[k] = ManifestEntry(mpath[k]) - - pkgdata_dir[k] = self.get_dir_from_bb_var('PKGDATA_DIR', - d_target[k]) - reverse_dir[k] = os.path.join(pkgdata_dir[k], - 'runtime-reverse') - if not os.path.exists(reverse_dir[k]): - self.logger.debug("{}: {} does not exist".format( - self.classname, reverse_dir[k])) - raise IOError - except OSError: - raise self.skipTest("{}: Error in obtaining manifest dirs"\ - .format(self.classname)) - except IOError: - msg = "{}: Error cannot find manifests in the specified dir:\n{}"\ - .format(self.classname, mdir) - self.fail(msg) - - for k in d_target.keys(): - self.logger.debug("{}: Check manifest {}".format( - self.classname, m_entry[k].file)) - - m_entry[k].missing = self.check_manifest_entries(\ - m_entry[k].file,reverse_dir[k]) - if m_entry[k].missing: - msg = '{}: {} Error has the following missing entries'\ - .format(self.classname, m_entry[k].file) - logmsg = msg+':\n'+'\n'.join(m_entry[k].missing) - self.logger.debug(logmsg) - self.logger.info(msg) - self.fail(logmsg) - - @OETestID(1381) - def test_image_manifest_entries(self): - '''Verifying the image manifest entries exist''' - - # get manifest location based on target to query about - try: - mdir = self.get_dir_from_bb_var('DEPLOY_DIR_IMAGE', - self.buildtarget) - mfilename = get_bb_var("IMAGE_LINK_NAME", self.buildtarget)\ - + ".manifest" - mpath = os.path.join(mdir, mfilename) - if not os.path.isfile(mpath): raise IOError - m_entry = ManifestEntry(mpath) - - pkgdata_dir = {} - pkgdata_dir = self.get_dir_from_bb_var('PKGDATA_DIR', - self.buildtarget) - revdir = os.path.join(pkgdata_dir, 'runtime-reverse') - if not os.path.exists(revdir): raise IOError - except OSError: - raise self.skipTest("{}: Error in obtaining manifest dirs"\ - .format(self.classname)) - except IOError: - msg = "{}: Error cannot find manifests in dir:\n{}"\ - .format(self.classname, mdir) - self.fail(msg) - - self.logger.debug("{}: Check manifest {}"\ - .format(self.classname, m_entry.file)) - m_entry.missing = self.check_manifest_entries(\ - m_entry.file, revdir) - if m_entry.missing: - msg = '{}: {} Error has the following missing entries'\ - .format(self.classname, m_entry.file) - logmsg = msg+':\n'+'\n'.join(m_entry.missing) - self.logger.debug(logmsg) - self.logger.info(msg) - self.fail(logmsg) |