From 45a5886f1ec458d4c306b8d68fd31d568bc36b47 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 29 Jan 2019 13:00:41 +0000 Subject: oeqa/logparser: Further simplification/clarification Rename the paster to be ptest specific and apply some further cleanups to the code to simplify and clarify what its doing. Signed-off-by: Richard Purdie --- meta/lib/oeqa/runtime/cases/ptest.py | 6 +++--- meta/lib/oeqa/utils/logparser.py | 36 ++++++++++++++++-------------------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/meta/lib/oeqa/runtime/cases/ptest.py b/meta/lib/oeqa/runtime/cases/ptest.py index ebef3f9eac..1ce22a09e7 100644 --- a/meta/lib/oeqa/runtime/cases/ptest.py +++ b/meta/lib/oeqa/runtime/cases/ptest.py @@ -6,13 +6,13 @@ from oeqa.core.decorator.depends import OETestDepends from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotFeature from oeqa.runtime.decorator.package import OEHasPackage -from oeqa.utils.logparser import Lparser, Result +from oeqa.utils.logparser import PtestParser, Result class PtestRunnerTest(OERuntimeTestCase): # a ptest log parser def parse_ptest(self, logfile): - parser = Lparser() + parser = PtestParser() result = Result() with open(logfile, errors='replace') as f: @@ -20,7 +20,7 @@ class PtestRunnerTest(OERuntimeTestCase): result_tuple = parser.parse_line(line) if not result_tuple: continue - result_tuple = line_type, category, status, name = parser.parse_line(line) + line_type, category, status, name = result_tuple if line_type == 'section' and status == 'begin': current_section = name diff --git a/meta/lib/oeqa/utils/logparser.py b/meta/lib/oeqa/utils/logparser.py index 328baeefaf..0807093fda 100644 --- a/meta/lib/oeqa/utils/logparser.py +++ b/meta/lib/oeqa/utils/logparser.py @@ -6,35 +6,31 @@ import re from . import ftools # A parser that can be used to identify weather a line is a test result or a section statement. -class Lparser(object): +class PtestParser(object): - def __init__(self, **kwargs): + def __init__(self): self.test_regex = {} - self.test_regex[0] = {} - self.test_regex[0]['pass'] = re.compile(r"^PASS:(.+)") - self.test_regex[0]['fail'] = re.compile(r"^FAIL:(.+)") - self.test_regex[0]['skip'] = re.compile(r"^SKIP:(.+)") + self.test_regex['pass'] = re.compile(r"^PASS:(.+)") + self.test_regex['fail'] = re.compile(r"^FAIL:(.+)") + self.test_regex['skip'] = re.compile(r"^SKIP:(.+)") self.section_regex = {} - self.section_regex[0] = {} - self.section_regex[0]['begin'] = re.compile(r"^BEGIN: .*/(.+)/ptest") - self.section_regex[0]['end'] = re.compile(r"^END: .*/(.+)/ptest") + self.section_regex['begin'] = re.compile(r"^BEGIN: .*/(.+)/ptest") + self.section_regex['end'] = re.compile(r"^END: .*/(.+)/ptest") # Parse a line and return a tuple containing the type of result (test/section) and its category, status and name def parse_line(self, line): - for test_category, test_status_list in self.test_regex.items(): - for test_status, status_regex in test_status_list.items(): - test_name = status_regex.search(line) - if test_name: - return ['test', test_category, test_status, test_name.group(1)] - - for section_category, section_status_list in self.section_regex.items(): - for section_status, status_regex in section_status_list.items(): - section_name = status_regex.search(line) - if section_name: - return ['section', section_category, section_status, section_name.group(1)] + for test_status, status_regex in test_status_list.items(): + test_name = status_regex.search(line) + if test_name: + return ['test', test_category, test_status, test_name.group(1)] + + for section_status, status_regex in section_status_list.items(): + section_name = status_regex.search(line) + if section_name: + return ['section', section_category, section_status, section_name.group(1)] return None -- cgit 1.2.3-korg