| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/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)
|