111 lines
3.2 KiB
Python
111 lines
3.2 KiB
Python
#!/usr/bin/python3
|
|
|
|
import sys
|
|
import os
|
|
|
|
error = 1
|
|
|
|
|
|
def parseLog(filename):
|
|
|
|
inFileName = filename
|
|
outFileName = os.path.splitext(inFileName)[0] + '_parsed' + os.path.splitext(inFileName)[1]
|
|
|
|
infile = open(inFileName).read()
|
|
infile = infile.split('\n')
|
|
|
|
outfile = open(outFileName, 'w')
|
|
|
|
count = 0
|
|
strName = ""
|
|
strNr = -1
|
|
strFUT = ""
|
|
coverageInfo = 0
|
|
|
|
for line in infile:
|
|
if line.find("==================================================") != -1:
|
|
continue
|
|
if line.find("--------------------------------------------------") != -1:
|
|
continue
|
|
if line.find("Start: Group") != -1:
|
|
outfile.write("\n")
|
|
continue
|
|
if line.find("End: Group") != -1:
|
|
outfile.write("\n")
|
|
continue
|
|
if line.find("Start: Test") != -1:
|
|
outfile.write("\n")
|
|
continue
|
|
if line.find("End: Test") != -1:
|
|
outfile.write("\n")
|
|
continue
|
|
if line.find("Start Dump: String") != -1:
|
|
continue
|
|
if line.find("End Dump: String") != -1:
|
|
strName = strName.rstrip("\n")
|
|
outfile.write(strName)
|
|
if strNr == 3:
|
|
strFUT = strName
|
|
# else:
|
|
# strFUT == ""
|
|
if strName == "Group Name:":
|
|
strNr = 1
|
|
outfile.write(" ")
|
|
elif strName == "Test Name:":
|
|
strNr = 2
|
|
outfile.write(" ")
|
|
elif strName == "Function Under Test:":
|
|
strNr = 3
|
|
outfile.write(" ")
|
|
else:
|
|
strNr = 4
|
|
if len(strName) < 128:
|
|
outfile.write("\n")
|
|
strName = ""
|
|
continue
|
|
if line.find("Start: Coverage Information") != -1:
|
|
coverageInfo = 1
|
|
outfile.write(line)
|
|
outfile.write("\n")
|
|
if line.find("End: Coverage Information") != -1:
|
|
strFUT == ""
|
|
coverageInfo = 0
|
|
if coverageInfo == 1:
|
|
# if line.find(strFUT) == -1: #this line contains no relevant coverage info
|
|
# continue
|
|
if line.find("- 0%") == -1 and line.find("src") == -1 and line.find("Functions") != -1:
|
|
outfile.write(line + "\n")
|
|
continue
|
|
if line.find("0x") == 0: #this is a line to translate
|
|
line = line[12:35] + line[37:61]
|
|
nums = line.split(' ')
|
|
for num in nums:
|
|
intNum = int(num, base=16)
|
|
# if intNum == 10:
|
|
# continue
|
|
if intNum == 0:
|
|
continue
|
|
strName += str(chr(intNum))
|
|
continue
|
|
outfile.write(line)
|
|
outfile.write("\n")
|
|
|
|
def print_usage(sys_argv):
|
|
script_name = sys_argv[0]
|
|
usage_str = "Syntax: {0} filename\n"
|
|
|
|
print (usage_str)
|
|
|
|
def exit_on_error(sys_argv):
|
|
print_usage(sys_argv)
|
|
exit(1)
|
|
|
|
if __name__ == '__main__':
|
|
arg_len = len(sys.argv)
|
|
|
|
if arg_len != 2:
|
|
exit_on_error(sys.argv)
|
|
|
|
if error == parseLog(sys.argv[1]):
|
|
exit_on_error(sys.argv)
|