diff -up ./src/testsuites/cu/check-regressions.py3 ./src/testsuites/cu/check-regressions --- ./src/testsuites/cu/check-regressions.py3 2020-04-18 14:23:18.757771743 -0400 +++ ./src/testsuites/cu/check-regressions 2020-04-18 14:23:56.070249408 -0400 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 ## # CU - C unit testing framework # --------------------------------- @@ -88,7 +88,7 @@ class Hunk: if self.numLinesAdded() != self.numLinesDeleted(): return False - for i in xrange(0, self.numLinesAdded()): + for i in range(0, self.numLinesAdded()): # if any line does not contain number - return False because # there must be more differences than in numbers if not self.re_is_num.match(self.added[i]) \ @@ -102,8 +102,8 @@ class Hunk: nums1 = self.re_num.findall(line1) nums2 = self.re_num.findall(line2) # and remove all empty strings - nums1 = filter(lambda x: len(x) > 0, nums1) - nums2 = filter(lambda x: len(x) > 0, nums2) + nums1 = [x for x in nums1 if len(x) > 0] + nums2 = [x for x in nums2 if len(x) > 0] # if length of list nums1 does not equal to length of nums2 # return False @@ -111,7 +111,7 @@ class Hunk: return False # iterate trough all numbers - for j in xrange(0, len(nums1)): + for j in range(0, len(nums1)): # if numbers do not equal to each other return False if not self.__eq(float(nums1[j]), float(nums2[j])): return False @@ -177,7 +177,7 @@ class Parser: self.re_deleted = re.compile(r"^< (.*)$") def __readNextLine(self): - self.line = self.fin.readline() + self.line = self.fin.readline().decode('utf-8') if len(self.line) == 0: return False return True @@ -210,7 +210,7 @@ class Parser: num_lines += 1 if PROGRESS_ON and num_lines % 50 == 0: - print MSG_BASE, "[ %08d ]" % num_lines, "\r", + print(MSG_BASE, "[ %08d ]" % num_lines, "\r", end=' ') sys.stdout.flush() # last push to list of hunks @@ -218,7 +218,7 @@ class Parser: self.diff.addHunk(self.cur_hunk) if PROGRESS_ON: - print MSG_BASE, " ", "\r", + print(MSG_BASE, " ", "\r", end=' ') sys.stdout.flush() def getDiff(self): @@ -262,26 +262,26 @@ def regressionFilesInDir(): def MSG(str = "", wait = False): if wait: - print str, + print(str, end=' ') else: - print str + print(str) def MSGOK(prestr = "", str = "", poststr = ""): - print prestr, "\033[0;32m" + str + "\033[0;0m", poststr + print(prestr, "\033[0;32m" + str + "\033[0;0m", poststr) def MSGFAIL(prestr = "", str = "", poststr = ""): - print prestr, "\033[0;31m" + str + "\033[0;0m", poststr + print(prestr, "\033[0;31m" + str + "\033[0;0m", poststr) def MSGINFO(prestr = "", str = "", poststr = ""): - print prestr, "\033[0;33m" + str + "\033[0;0m", poststr + print(prestr, "\033[0;33m" + str + "\033[0;0m", poststr) def dumpLines(lines, prefix = "", wait = False, max_lines = -1): line_num = 0 if wait: for line in lines: - print prefix, line, + print(prefix, line, end=' ') line_num += 1 if max_lines >= 0 and line_num > max_lines: break else: for line in lines: - print prefix, line + print(prefix, line) line_num += 1 if max_lines >= 0 and line_num > max_lines: break @@ -308,7 +308,7 @@ def main(files): MSG_BASE = "Comparing %s and %s" % \ (filenames[0].ljust(len1) ,filenames[1].ljust(len2)) if not PROGRESS_ON: - print MSG_BASE, + print(MSG_BASE, end=' ') sys.stdout.flush() pipe = Popen(cmd, stdout=PIPE) @@ -319,7 +319,7 @@ def main(files): diff.checkFloats() if PROGRESS_ON: - print MSG_BASE, + print(MSG_BASE, end=' ') if diff.numHunks() == 0: MSGOK(" [", "OK", "]") @@ -345,23 +345,23 @@ def main(files): dumpLines(lines, " |", True, MAX_DIFF_LINES) def usage(): - print "Usage: " + sys.argv[0] + " [ OPTIONS ] [ directory, [ directory, [ ... ] ] ]" - print "" - print " OPTIONS:" - print " --help / -h none Print this help" - print " --exact / -e none Switch do exact comparasion of files" - print " --not-exact / -n none Switch do non exact comparasion of files (default behaviour)" - print " --max-diff-lines int Maximum of lines of diff which can be printed (default " + str(MAX_DIFF_LINES) + ")" - print " --eps float Precision of floating point numbers (epsilon) (default " + str(EPS) + ")" - print " --no-progress none Turn off progress bar" - print " --progress none Turn on progress bar (default)" - print "" - print " This program is able to compare files with regressions generated by CU testsuites." - print " You can specify directories which are to be searched for regression files." - print " In non exact copmarasion mode (which is default), this program tries to compare" - print " floating point numbers in files with respect to specified precision (see --eps) and" - print " those lines which differ only in precission of floating point numbers are omitted." - print "" + print("Usage: " + sys.argv[0] + " [ OPTIONS ] [ directory, [ directory, [ ... ] ] ]") + print("") + print(" OPTIONS:") + print(" --help / -h none Print this help") + print(" --exact / -e none Switch do exact comparasion of files") + print(" --not-exact / -n none Switch do non exact comparasion of files (default behaviour)") + print(" --max-diff-lines int Maximum of lines of diff which can be printed (default " + str(MAX_DIFF_LINES) + ")") + print(" --eps float Precision of floating point numbers (epsilon) (default " + str(EPS) + ")") + print(" --no-progress none Turn off progress bar") + print(" --progress none Turn on progress bar (default)") + print("") + print(" This program is able to compare files with regressions generated by CU testsuites.") + print(" You can specify directories which are to be searched for regression files.") + print(" In non exact copmarasion mode (which is default), this program tries to compare") + print(" floating point numbers in files with respect to specified precision (see --eps) and") + print(" those lines which differ only in precission of floating point numbers are omitted.") + print("") sys.exit(-1)