[OE-core] [PATCH 3/3] oeqa/runtime/parselogs: escape special character for grep

Yi Zhao yi.zhao at windriver.com
Thu Jan 7 03:29:54 UTC 2016


Sometimes the grep output is not correct if the log message contains
some special characters. Use re.escape to escape all non-alphanumerics
before grep

Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
---
 meta/lib/oeqa/runtime/parselogs.py |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/meta/lib/oeqa/runtime/parselogs.py b/meta/lib/oeqa/runtime/parselogs.py
index fc2bc38..7fc7932 100644
--- a/meta/lib/oeqa/runtime/parselogs.py
+++ b/meta/lib/oeqa/runtime/parselogs.py
@@ -1,6 +1,7 @@
 import os
 import unittest
 import subprocess
+import re
 from oeqa.oetest import oeRuntimeTest
 from oeqa.utils.decorators import *
 
@@ -50,7 +51,7 @@ x86_common = [
 qemux86_common = [
     'wrong ELF class',
     "fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.",
-    "can't claim BAR ",
+    "can\'t claim BAR ",
 ] + common_errors
 
 ignore_errors = { 
@@ -221,7 +222,8 @@ class ParseLogsTest(oeRuntimeTest):
                 results[log.replace('target_logs/','')] = {}
                 rez = result.splitlines()
                 for xrez in rez:
-                    command = "grep \"\\"+str(xrez)+"\" -B "+str(lines_before)+" -A "+str(lines_after)+" "+str(log)
+                    nxrez = re.escape(xrez)
+                    command = "grep -E \""+str(nxrez)+"\" -B "+str(lines_before)+" -A "+str(lines_after)+" "+str(log)
                     try:
                         grep_output = subprocess.check_output(command, shell=True)
                     except:
-- 
1.7.9.5




More information about the Openembedded-core mailing list