When comparing regression traces, ignore newline differences for text files (.tr and .mob extensions); this makes regression testing in win32/mingw pass.
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Wed, 24 Jun 2009 19:38:59 +0100
changeset 4586 4b9b5f1692d3
parent 4585 a720292fcd24
child 4587 a02d5aeae94b
When comparing regression traces, ignore newline differences for text files (.tr and .mob extensions); this makes regression testing in win32/mingw pass.
regression.py
--- a/regression.py	Wed Jun 24 18:43:04 2009 +0100
+++ b/regression.py	Wed Jun 24 19:38:59 2009 +0100
@@ -40,6 +40,26 @@
     import filecmp
     comp = filecmp.dircmp(dir1, dir2)
     differ = (comp.left_only or comp.right_only or comp.diff_files)
+
+    if differ:
+        # ok, stupid binary comparison reports differences, but maybe
+        # only text files differ, in which case we should compare
+        # again while ignoring newline differences between
+        # windows/mac/unix.
+        if not comp.left_only and not comp.right_only:
+            for diff_fname in comp.diff_files:
+                if not (diff_fname.endswith(".tr") or diff_fname.endswith(".mob")):
+                    # doesn't look like a text file; it has to differ
+                    break
+                diff_file1 = open(os.path.join(dir1, diff_fname), "rtU").readlines()
+                diff_file2 = open(os.path.join(dir2, diff_fname), "rtU").readlines()
+                if diff_file1 != diff_file2:
+                    break
+                #else:
+                #    print ">>>>>>>> %s file does not really differ!" % (diff_fname)
+            else:
+                differ = False
+
     if differ:
         if verbose:
             comp.report()