[OE-core] [PATCH 4/7] rootfs.py: Use one way to exclude lines in _log_check_error()

Peter Kjellerstedt peter.kjellerstedt at axis.com
Wed May 18 22:28:15 UTC 2016


Before there were three different ways to exclude a line from being
searched for error messages in _log_check_error(). Now there is only
one: an array of regular expressions. This should make it easy to add
more excludes if nedded.

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
---
 meta/lib/oe/rootfs.py | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index a92aa22..63ca22f 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -54,26 +54,25 @@ class Rootfs(object):
 				    % (self.d.getVar('PN', True), m.group(), line))
 
     def _log_check_error(self):
+        # Ignore any lines containing log_check to avoid recursion, and ignore
+        # lines beginning with a + since sh -x may emit code which isn't
+        # actually executed, but may contain error messages
+        excludes = [ 'log_check', r'^\+' ]
+        if hasattr(self, 'log_check_expected_errors_regexes'):
+            excludes.extend(self.log_check_expected_errors_regexes)
+        excludes = [re.compile(x) for x in excludes]
         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:
-                if 'log_check' in line:
-                    continue
-                # sh -x may emit code which isn't actually executed
-                if line.startswith('+'):
-                    continue
-
-                if hasattr(self, 'log_check_expected_errors_regexes'):
-                    m = None
-                    for ee in self.log_check_expected_errors_regexes:
-                        m = re.search(ee, line)
-                        if m:
-                            break
+                for ee in excludes:
+                    m = ee.search(line)
                     if m:
-                        continue
+                        break
+                if m:
+                    continue
 
                 m = r.search(line)
                 if m:
-- 
2.1.0




More information about the Openembedded-core mailing list