]> AND Public Git Repository - simgrid.git/blobdiff - buildtools/Cmake/Scripts/tesh.pl
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
There is no need to export these functions. Mark them static.
[simgrid.git] / buildtools / Cmake / Scripts / tesh.pl
index 8f0aa56fbd1aef41d5a7278d780b36ff638e1ea8..e103a8f5a4a1bbd6849230620c47654df5986bd3 100755 (executable)
@@ -20,6 +20,7 @@ my($time_to_wait)=0;
 my $path = $0;
 my $OS;
 my $enable_coverage=0;
+my $sort_prefix = 19;
 my $tesh_file;
 my $tesh_name;
 my $error=0;
@@ -305,13 +306,20 @@ sub parse_out {
 
   if ($cmd{'sort'}){   
     sub mysort{
-    $a cmp $b
+        substr($a, 0, $sort_prefix) cmp substr($b, 0, $sort_prefix)
     }
-    use sort qw(defaults _quicksort); # force quicksort
+    use sort 'stable';
     @got = sort mysort @got;
+    while (@got and $got[0] eq "") {
+      shift @got;
+    }
+
     #also resort the other one, as perl sort is not the same as the C one used to generate teshes
     if(defined($cmd{'out'})){
       @{$cmd{'out'}}=sort mysort @{$cmd{'out'}};
+      while (@{$cmd{'out'}} and ${$cmd{'out'}}[0] eq "") {
+        shift @{$cmd{'out'}};
+      }
     }
   }
 
@@ -488,6 +496,9 @@ LINE: while (not $finished and not $error) {
       %cmd = ();
     }
     $cmd{'sort'} = 1;
+    if ($line =~ /^!\s*output sort\s+(\d+)/) {
+        $sort_prefix = $1;
+    }
   }
   elsif($line =~ /^!\s*output ignore/){    #output ignore
     if (defined($cmd{'cmd'})) {