X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Finput_data_parser.py;h=94081425de0ff8467306605665d78dc666b20806;hp=4fdc7e33535e1d2b9a5947b7952cc160e62e109c;hb=c98961835d8bab39bdb1cbd6aa15a28f8d4fa163;hpb=7d84c1e92f454ceb2159fcc17dd4338028d41f4d diff --git a/resources/tools/presentation/input_data_parser.py b/resources/tools/presentation/input_data_parser.py index 4fdc7e3353..94081425de 100644 --- a/resources/tools/presentation/input_data_parser.py +++ b/resources/tools/presentation/input_data_parser.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. +# Copyright (c) 2022 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -297,7 +297,7 @@ class ExecutionChecker(ResultVisitor): r'hostname=\"(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\",hook=\"(.*)\"' ) - def __init__(self, metadata, mapping, ignore, for_output): + def __init__(self, metadata, mapping, ignore, process_oper): """Initialisation. :param metadata: Key-value pairs to be included in "metadata" part of @@ -305,11 +305,12 @@ class ExecutionChecker(ResultVisitor): :param mapping: Mapping of the old names of test cases to the new (actual) one. :param ignore: List of TCs to be ignored. - :param for_output: Output to be generated from downloaded data. + :param process_oper: If True, operational data (show run, telemetry) is + processed. :type metadata: dict :type mapping: dict :type ignore: list - :type for_output: str + :type process_oper: bool """ # Type of message to parse out from the test messages @@ -330,7 +331,7 @@ class ExecutionChecker(ResultVisitor): # Ignore list self._ignore = ignore - self._for_output = for_output + self._process_oper = process_oper # Number of PAPI History messages found: # 0 - no message @@ -520,11 +521,11 @@ class ExecutionChecker(ResultVisitor): return hdr_lat hdr_lat = ( - in_list_1[0], in_list_1[1], in_list_1[2], - in_list_2[0], in_list_2[1], in_list_2[2] + int(in_list_1[0]), int(in_list_1[1]), int(in_list_1[2]), + int(in_list_2[0]), int(in_list_2[1]), int(in_list_2[2]) ) for item in hdr_lat: - if item in (u"-1", u"4294967295", u"0"): + if item in (-1, 4294967295, 0): return None return hdr_lat @@ -1042,7 +1043,7 @@ class ExecutionChecker(ResultVisitor): u"level": len(suite.longname.split(u".")) } - suite.keywords.visit(self) + suite.body.visit(self) def end_suite(self, suite): """Called when suite ends. @@ -1060,7 +1061,7 @@ class ExecutionChecker(ResultVisitor): :returns: Nothing. """ if self.start_test(test) is not False: - test.keywords.visit(self) + test.body.visit(self) self.end_test(test) def start_test(self, test): @@ -1201,15 +1202,15 @@ class ExecutionChecker(ResultVisitor): if test.status == u"PASS": test_result[u"throughput"], test_result[u"status"] = \ self._get_plr_throughput(test.message) + elif u"LDP_NGINX" in tags: + test_result[u"type"] = u"LDP_NGINX" + test_result[u"result"], test_result[u"status"] = \ + self._get_vsap_data(test.message, tags) elif u"HOSTSTACK" in tags: test_result[u"type"] = u"HOSTSTACK" if test.status == u"PASS": test_result[u"result"], test_result[u"status"] = \ self._get_hoststack_data(test.message, tags) - elif u"LDP_NGINX" in tags: - test_result[u"type"] = u"LDP_NGINX" - test_result[u"result"], test_result[u"status"] = \ - self._get_vsap_data(test.message, tags) # elif u"TCP" in tags: # This might be not used # test_result[u"type"] = u"TCP" # if test.status == u"PASS": @@ -1284,7 +1285,7 @@ class ExecutionChecker(ResultVisitor): :type test_kw: Keyword :returns: Nothing. """ - for keyword in test_kw.keywords: + for keyword in test_kw.body: if self.start_test_kw(keyword) is not False: self.visit_test_kw(keyword) self.end_test_kw(keyword) @@ -1297,7 +1298,7 @@ class ExecutionChecker(ResultVisitor): :type test_kw: Keyword :returns: Nothing. """ - if self._for_output == u"trending": + if not self._process_oper: return if test_kw.name.count(u"Run Telemetry On All Duts"): @@ -1326,7 +1327,7 @@ class ExecutionChecker(ResultVisitor): :type setup_kw: Keyword :returns: Nothing. """ - for keyword in setup_kw.keywords: + for keyword in setup_kw.body: if self.start_setup_kw(keyword) is not False: self.visit_setup_kw(keyword) self.end_setup_kw(keyword) @@ -1367,7 +1368,7 @@ class ExecutionChecker(ResultVisitor): :type teardown_kw: Keyword :returns: Nothing. """ - for keyword in teardown_kw.keywords: + for keyword in teardown_kw.body: if self.start_teardown_kw(keyword) is not False: self.visit_teardown_kw(keyword) self.end_teardown_kw(keyword) @@ -1526,8 +1527,18 @@ class InputData: f"Error occurred while parsing output.xml: {repr(err)}" ) return None + + process_oper = False + if u"-vpp-perf-report-coverage-" in job: + process_oper = True + # elif u"-vpp-perf-report-iterative-" in job: + # # Exceptions for TBs where we do not have coverage data: + # for item in (u"-2n-icx", ): + # if item in job: + # process_oper = True + # break checker = ExecutionChecker( - metadata, self._cfg.mapping, self._cfg.ignore, self._for_output + metadata, self._cfg.mapping, self._cfg.ignore, process_oper ) result.visit(checker)