Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / tools / tesh / tesh.py
index cc4e00a..c5159ca 100755 (executable)
@@ -329,9 +329,9 @@ class Cmd(object):
             while len(stdouta) > 0 and stdouta[-1] == "":
                 del stdouta[-1]
             stdouta = self.remove_ignored_lines(stdouta)
+            stdcpy = self.output_pipe_stdout[:]
 
-            #the "sort" bash command is case unsensitive,
-            # we mimic its behaviour
+            # Mimic the "sort" bash command, which is case unsensitive.
             if self.sort == 0:
                 stdouta.sort(key=lambda x: x.lower())
                 self.output_pipe_stdout.sort(key=lambda x: x.lower())
@@ -342,8 +342,18 @@ class Cmd(object):
             diff = list(difflib.unified_diff(self.output_pipe_stdout, stdouta,lineterm="",fromfile='expected', tofile='obtained'))
             if len(diff) > 0: 
                 print("Output of <"+cmdName+"> mismatch:")
+                difflen = 0;
                 for line in diff:
-                    print(line)
+                    if difflen<250:
+                        print(line)
+                    difflen += 1
+                if difflen > 100:
+                    print("(diff truncated after 250 lines)")
+                if self.sort >= 0:
+                    print("Unsorted observed output:\n")
+                    for line in stdcpy:
+                        print(line)
+                
                 print("Test suite `"+FileReader().filename+"': NOK (<"+cmdName+"> output mismatch)")
                 if lock is not None: lock.release()
                 if TeshState().keep:
@@ -414,7 +424,8 @@ if __name__ == '__main__':
         TeshState().ignore_regexps_common = [
            re.compile("^profiling:"),
            re.compile(".*WARNING: ASan doesn\'t fully support"),
-           re.compile("Unable to clean temporary file C:.*")]
+           re.compile("Unable to clean temporary file C:.*"),
+           re.compile(".*Configuration change: Set \'contexts/")]
     
     if options.teshfile is None:
         f = FileReader(None)