summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/lib/oe/rootfs.py52
1 files changed, 14 insertions, 38 deletions
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index 479e4ccc5e..f5c465fbd2 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -40,7 +40,7 @@ class Rootfs(object):
40 def _log_check(self): 40 def _log_check(self):
41 pass 41 pass
42 42
43 def _log_check_warn(self): 43 def _log_check_common(self, type, match):
44 # Ignore any lines containing log_check to avoid recursion, and ignore 44 # Ignore any lines containing log_check to avoid recursion, and ignore
45 # lines beginning with a + since sh -x may emit code which isn't 45 # lines beginning with a + since sh -x may emit code which isn't
46 # actually executed, but may contain error messages 46 # actually executed, but may contain error messages
@@ -48,7 +48,7 @@ class Rootfs(object):
48 if hasattr(self, 'log_check_expected_regexes'): 48 if hasattr(self, 'log_check_expected_regexes'):
49 excludes.extend(self.log_check_expected_regexes) 49 excludes.extend(self.log_check_expected_regexes)
50 excludes = [re.compile(x) for x in excludes] 50 excludes = [re.compile(x) for x in excludes]
51 r = re.compile('^(warn|Warn|WARNING:)') 51 r = re.compile(match)
52 log_path = self.d.expand("${T}/log.do_rootfs") 52 log_path = self.d.expand("${T}/log.do_rootfs")
53 messages = [] 53 messages = []
54 with open(log_path, 'r') as log: 54 with open(log_path, 'r') as log:
@@ -65,45 +65,21 @@ class Rootfs(object):
65 messages.append('[log_check] %s' % line) 65 messages.append('[log_check] %s' % line)
66 if messages: 66 if messages:
67 if len(messages) == 1: 67 if len(messages) == 1:
68 msg = 'a warning message' 68 msg = '1 %s message' % type
69 else: 69 else:
70 msg = '%d warning messages' % len(messages) 70 msg = '%d %s messages' % (len(messages), type)
71 bb.warn('[log_check] %s: found %s in the logfile:\n%s' 71 msg = '[log_check] %s: found %s in the logfile:\n%s' % \
72 % (self.d.getVar('PN', True), msg, ''.join(messages))) 72 (self.d.getVar('PN', True), msg, ''.join(messages))
73 73 if type == 'error':
74 def _log_check_error(self): 74 bb.fatal(msg)
75 # Ignore any lines containing log_check to avoid recursion, and ignore 75 else:
76 # lines beginning with a + since sh -x may emit code which isn't 76 bb.warn(msg)
77 # actually executed, but may contain error messages
78 excludes = [ 'log_check', r'^\+' ]
79 if hasattr(self, 'log_check_expected_regexes'):
80 excludes.extend(self.log_check_expected_regexes)
81 excludes = [re.compile(x) for x in excludes]
82 r = re.compile(self.log_check_regex)
83 log_path = self.d.expand("${T}/log.do_rootfs")
84 with open(log_path, 'r') as log:
85 found_error = 0
86 message = "\n"
87 for line in log:
88 for ee in excludes:
89 m = ee.search(line)
90 if m:
91 break
92 if m:
93 continue
94
95 m = r.search(line)
96 if m:
97 found_error = 1
98 bb.warn('[log_check] %s: found an error message in the logfile (keyword \'%s\'):\n[log_check] %s'
99 % (self.d.getVar('PN', True), m.group(), line))
100 77
101 if found_error >= 1 and found_error <= 5: 78 def _log_check_warn(self):
102 message += line + '\n' 79 self._log_check_common('warning', '^(warn|Warn|WARNING:)')
103 found_error += 1
104 80
105 if found_error == 6: 81 def _log_check_error(self):
106 bb.fatal(message) 82 self._log_check_common('error', self.log_check_regex)
107 83
108 def _insert_feed_uris(self): 84 def _insert_feed_uris(self):
109 if bb.utils.contains("IMAGE_FEATURES", "package-management", 85 if bb.utils.contains("IMAGE_FEATURES", "package-management",