[OE-core] [PATCH] selftest/manifest.py: Test to verify rootfs manifest
Benjamin Esquivel
benjamin.esquivel at linux.intel.com
Wed Aug 26 12:26:02 UTC 2015
Adding a new test to verify if the packages in the
manifest files actually exists in pkgdata.
-adding a setUpClass for when more tests get created here
-check for the paths and fail gracefully if not there
-skip the test when there are no manifest files to check
-debug prints for failure analysis
[YOCTO#8028]
Signed-off-by: Benjamin Esquivel <benjamin.esquivel at linux.intel.com>
Signed-off-by: Mariano Lopez <mariano.lopez at linux.intel.com>
---
meta/lib/oeqa/selftest/manifest.py | 52 ++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
create mode 100644 meta/lib/oeqa/selftest/manifest.py
diff --git a/meta/lib/oeqa/selftest/manifest.py b/meta/lib/oeqa/selftest/manifest.py
new file mode 100644
index 0000000..c2bc945
--- /dev/null
+++ b/meta/lib/oeqa/selftest/manifest.py
@@ -0,0 +1,52 @@
+import unittest
+import os
+from glob import glob
+
+from oeqa.selftest.base import oeSelfTest
+from oeqa.utils.commands import get_bb_var
+from oeqa.utils.decorators import testcase
+
+class VerifyManifest(oeSelfTest):
+ '''Tests for the manifest files and contents of an image'''
+
+ @classmethod
+ def setUpClass(self):
+
+ # get directory locations from variable values and check them
+ self.deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE');
+ if not self.deploy_dir_image \
+ or not os.path.isdir(self.deploy_dir_image):
+ raise unittest.SkipTest("{}: DEPLOY_DIR_IMAGE does not exist: {}"\
+ .format("VerifyManifest", self.deploy_dir_image))
+
+ self.pkgdata_dir = get_bb_var('PKGDATA_DIR');
+ if not self.pkgdata_dir \
+ or not os.path.isdir(self.pkgdata_dir):
+ raise unittest.SkipTest("{}: PKGDATA_DIR does not exist: {}"\
+ .format("VerifyManifest", self.pkgdata_dir))
+
+ # get the manifest files
+ # no need to try: since glob would return an empty list if
+ # the path is non-existant
+ self.manifest_files = glob("%s/*.manifest" % self.deploy_dir_image)
+ self.log.debug("manifest files: {}".format(self.manifest_files))
+ if not self.manifest_files:
+ raise unittest.SkipTest("{}: No manifest files found in: {}"\
+ .format("VerifyManifest", self.deploy_dir_image))
+
+
+ def test_manifest_entries(self):
+ '''Verifying the manifest entries as packages '''
+ testname = self.id().split('.')[-1]
+ rundir = os.path.join(self.pkgdata_dir, "runtime-reverse")
+
+ errmsg = "ERROR: Package %s is in manifest but not in pkgdata"
+ for manifest in self.manifest_files:
+ with open(manifest, "r") as mfile:
+ for manifest_entries in mfile:
+ pkg = manifest_entries.split()[0]
+ pkgfile = os.path.join(rundir, pkg)
+ self.log.debug("{}: looking for {}"\
+ .format(testname, pkgfile))
+ self.assertTrue(os.path.isfile(pkgfile),
+ errmsg % pkg)
--
2.3.0
More information about the Openembedded-core
mailing list