blob: 886b9ab557e87699f4873b5a22d31720c72747cf [file] [log] [blame]
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 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
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
import sys
import glob
import traceback
from xml.etree.ElementTree import ElementTree
def print_detail_information(testcase, fail_or_error):
print("-" * 50)
print("classname: %s / testname: %s" % (testcase.get("classname"), testcase.get("name")))
print(fail_or_error.text)
stdout = testcase.find("system-out")
if stdout is not None:
print("-" * 20, "system-out", "-"*20)
print(stdout.text)
stderr = testcase.find("system-err")
if stderr is not None:
print("-" * 20, "system-err", "-"*20)
print(stderr.text)
print("-" * 50)
def print_error_reports_from_report_file(file_path):
tree = ElementTree()
try:
tree.parse(file_path)
except:
print("-" * 50)
print("Error parsing %s"%file_path)
f = open(file_path, "r")
print(f.read())
print("-" * 50)
return
testcases = tree.findall(".//testcase")
for testcase in testcases:
error = testcase.find("error")
if error is not None:
print_detail_information(testcase, error)
fail = testcase.find("fail")
if fail is not None:
print_detail_information(testcase, fail)
failure = testcase.find("failure")
if failure is not None:
print_detail_information(testcase, failure)
def main(report_dir_path):
for test_report in glob.iglob(report_dir_path + '/*.xml'):
file_path = os.path.abspath(test_report)
try:
print("Checking %s" % test_report)
print_error_reports_from_report_file(file_path)
except Exception as e:
print("Error while reading report file, %s" % file_path)
print("Exception: %s" % e)
traceback.print_exc()
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: %s [report dir path]" % sys.argv[0])
sys.exit(1)
main(sys.argv[1])