src/HOL/Mirabelle/lib/scripts/report.pl
changeset 32517 bfe7573a239b
parent 32509 9da37876874d
child 32518 e3c4e337196c
equal deleted inserted replaced
32516:a579bc82e932 32517:bfe7573a239b
    16 my $sh_succeeded = 0;
    16 my $sh_succeeded = 0;
    17 my $sh_time = 0;
    17 my $sh_time = 0;
    18 
    18 
    19 my $metis_calls = 0;
    19 my $metis_calls = 0;
    20 my $metis_succeeded = 0;
    20 my $metis_succeeded = 0;
    21 my $metis_time_out = 0;
    21 my $metis_timeout = 0;
    22 my $metis_time = 0;
    22 my $metis_time = 0;
    23 
    23 
    24 foreach (@lines) {
    24 foreach (@lines) {
    25   if (m/^unhandled exception/) {
    25   if (m/^unhandled exception/) {
    26     $unhandled++;
    26     $unhandled++;
    38   if (m/^metis \(sledgehammer\): succeeded \(([0-9]+)\)/) {
    38   if (m/^metis \(sledgehammer\): succeeded \(([0-9]+)\)/) {
    39     $metis_succeeded++;
    39     $metis_succeeded++;
    40     $metis_time += $1;
    40     $metis_time += $1;
    41   }
    41   }
    42   if (m/^metis \(sledgehammer\): time out/) {
    42   if (m/^metis \(sledgehammer\): time out/) {
    43     $metis_time_out++;
    43     $metis_timeout++;
    44   }
    44   }
    45 }
    45 }
    46 
    46 
    47 open(FILE, ">>$log_file") || die "Cannot open file '$log_file'";
    47 open(FILE, ">>$log_file") || die "Cannot open file '$log_file'";
    48 
    48 
    55 if ($sh_calls > 0) {
    55 if ($sh_calls > 0) {
    56   my $percent = $sh_succeeded / $sh_calls * 100;
    56   my $percent = $sh_succeeded / $sh_calls * 100;
    57   my $time = $sh_time / 1000;
    57   my $time = $sh_time / 1000;
    58   my $avg_time = $time / $sh_succeeded;
    58   my $avg_time = $time / $sh_succeeded;
    59   print FILE "Total number of sledgehammer calls: $sh_calls\n";
    59   print FILE "Total number of sledgehammer calls: $sh_calls\n";
    60   print FILE "Number of successful sledgehammer calls: $sh_succeeded\n";
    60   print FILE "Number of successful sledgehammer calls:  $sh_succeeded\n";
    61   printf FILE "Percentage of successful sledgehammer calls: %.0f%%\n", $percent;
    61   printf FILE "Success rate: %.0f%%\n", $percent;
    62   printf FILE "Total time for successful sledgehammer calls: %.3f seconds\n", $time;
    62   printf FILE "Total time for successful sledgehammer calls: %.3f seconds\n", $time;
    63   printf FILE "Average time for successful sledgehammer calls: %.3f seconds\n\n", $avg_time;
    63   printf FILE "Average time for successful sledgehammer calls: %.3f seconds\n\n", $avg_time;
    64 }
    64 }
    65 
    65 
    66 if ($metis_calls > 0) {
    66 if ($metis_calls > 0) {
    67   my $percent = $metis_succeeded / $metis_calls * 100;
    67   my $percent = $metis_succeeded / $metis_calls * 100;
    68   my $time = $metis_time / 1000;
    68   my $time = $metis_time / 1000;
    69   my $avg_time = $time / $metis_succeeded;
    69   my $avg_time = $time / $metis_succeeded;
       
    70   my $metis_exc = $sh_succeeded - $metis_succeeded - $metis_timeout;
    70   print FILE "Total number of metis calls: $metis_calls\n";
    71   print FILE "Total number of metis calls: $metis_calls\n";
    71   print FILE "Number of successful metis calls: $metis_succeeded\n";
    72   print FILE "Number of successful metis calls: $metis_succeeded\n";
    72   print FILE "Number of metis time outs: $metis_time_out\n";
    73   print FILE "Number of metis timeouts: $metis_timeout\n";
    73   printf FILE "Percentage of successful metis calls: %.0f%%\n", $percent;
    74   print FILE "Number of metis exceptions: $metis_exc\n";
       
    75   printf FILE "Success rate: %.0f%%\n", $percent;
    74   printf FILE "Total time for successful metis calls: %.3f seconds\n", $time;
    76   printf FILE "Total time for successful metis calls: %.3f seconds\n", $time;
    75   printf FILE "Average time for successful metis calls: %.3f seconds\n", $avg_time;
    77   printf FILE "Average time for successful metis calls: %.3f seconds\n", $avg_time;
    76 }
    78 }
    77 
    79 
    78 close(FILE);
    80 close(FILE);