aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2015-03-18 11:25:18 +0800
committerChen Qi <Qi.Chen@windriver.com>2015-03-19 13:15:41 +0800
commited95f01435903ddfc4046433c52ef7049e4f169a (patch)
tree98136991cf298cb63711d817ae26848d5bbbc5aa
parentf6e1340fbf6bcb06b633b3e3d75266bf5c920c1c (diff)
downloadopenembedded-core-contrib-ed95f01435903ddfc4046433c52ef7049e4f169a.tar.gz
openembedded-core-contrib-ed95f01435903ddfc4046433c52ef7049e4f169a.tar.bz2
openembedded-core-contrib-ed95f01435903ddfc4046433c52ef7049e4f169a.zip
rootfs.py: add log checking ability for deb and ipk
Extract the common codes of log checking and add the ability of log checking for deb and ipk package backend. Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-rw-r--r--meta/lib/oe/rootfs.py61
1 files changed, 44 insertions, 17 deletions
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index 3a77e86ec12..f887a98f340 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -40,6 +40,43 @@ class Rootfs(object):
def _log_check(self):
pass
+ def _log_check_warn(self):
+ r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)')
+ log_path = self.d.expand("${T}/log.do_rootfs")
+ with open(log_path, 'r') as log:
+ for line in log.read().split('\n'):
+ if 'log_check' in line or 'NOTE:' in line:
+ continue
+
+ m = r.search(line)
+ if m:
+ bb.warn('log_check: There is a warn message in the logfile')
+ bb.warn('log_check: Matched keyword: [%s]' % m.group())
+ bb.warn('log_check: %s\n' % line)
+
+ def _log_check_error(self):
+ r = re.compile(self.log_check_regex)
+ log_path = self.d.expand("${T}/log.do_rootfs")
+ with open(log_path, 'r') as log:
+ found_error = 0
+ message = "\n"
+ for line in log.read().split('\n'):
+ if 'log_check' in line:
+ continue
+
+ m = r.search(line)
+ if m:
+ found_error = 1
+ bb.warn('log_check: There were error messages in the logfile')
+ bb.warn('log_check: Matched keyword: [%s]\n\n' % m.group())
+
+ if found_error >= 1 and found_error <= 5:
+ message += line + '\n'
+ found_error += 1
+
+ if found_error == 6:
+ bb.fatal(message)
+
def _insert_feed_uris(self):
if bb.utils.contains("IMAGE_FEATURES", "package-management",
True, False, self.d):
@@ -256,7 +293,7 @@ class Rootfs(object):
class RpmRootfs(Rootfs):
def __init__(self, d, manifest_dir):
super(RpmRootfs, self).__init__(d)
-
+ self.log_check_regex = '(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)'
self.manifest = RpmManifest(d, manifest_dir)
self.pm = RpmPM(d,
@@ -353,20 +390,6 @@ class RpmRootfs(Rootfs):
# already saved in /etc/rpm-postinsts
pass
- def _log_check_warn(self):
- r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)')
- log_path = self.d.expand("${T}/log.do_rootfs")
- with open(log_path, 'r') as log:
- for line in log.read().split('\n'):
- if 'log_check' in line or 'NOTE:' in line:
- continue
-
- m = r.search(line)
- if m:
- bb.warn('log_check: There is a warn message in the logfile')
- bb.warn('log_check: Matched keyword: [%s]' % m.group())
- bb.warn('log_check: %s\n' % line)
-
def _log_check_error(self):
r = re.compile('(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)')
log_path = self.d.expand("${T}/log.do_rootfs")
@@ -414,6 +437,7 @@ class RpmRootfs(Rootfs):
class DpkgRootfs(Rootfs):
def __init__(self, d, manifest_dir):
super(DpkgRootfs, self).__init__(d)
+ self.log_check_regex = '^E:'
bb.utils.remove(self.image_rootfs, True)
bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS', True), True)
@@ -485,7 +509,8 @@ class DpkgRootfs(Rootfs):
self.pm.mark_packages("unpacked", registered_pkgs.split())
def _log_check(self):
- pass
+ self._log_check_warn()
+ self._log_check_error()
def _cleanup(self):
pass
@@ -494,6 +519,7 @@ class DpkgRootfs(Rootfs):
class OpkgRootfs(Rootfs):
def __init__(self, d, manifest_dir):
super(OpkgRootfs, self).__init__(d)
+ self.log_check_regex = '(exit 1|Collected errors)'
self.manifest = OpkgManifest(d, manifest_dir)
self.opkg_conf = self.d.getVar("IPKGCONF_TARGET", True)
@@ -755,7 +781,8 @@ class OpkgRootfs(Rootfs):
self.pm.mark_packages("unpacked", registered_pkgs.split())
def _log_check(self):
- pass
+ self._log_check_warn()
+ self._log_check_error()
def _cleanup(self):
pass