src/HOL/Mirabelle/lib/scripts/report.pl
author boehmes
Fri, 04 Sep 2009 13:57:56 +0200
changeset 32518 e3c4e337196c
parent 32517 bfe7573a239b
permissions -rw-r--r--
tuned
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32499
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     1
#
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     2
# Author: Sascha Boehme
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     3
#
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     4
# Reports for Mirabelle
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     5
#
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     6
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     7
my $log_file = $ARGV[0];
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     8
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
     9
open(FILE, "<$log_file") || die "Cannot open file '$log_file'";
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    10
my @lines = <FILE>;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    11
close(FILE);
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    12
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    13
my $unhandled = 0;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    14
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    15
my $sh_calls = 0;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    16
my $sh_succeeded = 0;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    17
my $sh_time = 0;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    18
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    19
my $metis_calls = 0;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    20
my $metis_succeeded = 0;
32517
bfe7573a239b tuned output
nipkow
parents: 32509
diff changeset
    21
my $metis_timeout = 0;
32499
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    22
my $metis_time = 0;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    23
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    24
foreach (@lines) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    25
  if (m/^unhandled exception/) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    26
    $unhandled++;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    27
  }
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    28
  if (m/^sledgehammer:/) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    29
    $sh_calls++;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    30
  }
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    31
  if (m/^sledgehammer: succeeded \(([0-9]+)\)/) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    32
    $sh_succeeded++;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    33
    $sh_time += $1;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    34
  }
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    35
  if (m/^metis \(sledgehammer\):/) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    36
    $metis_calls++;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    37
  }
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    38
  if (m/^metis \(sledgehammer\): succeeded \(([0-9]+)\)/) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    39
    $metis_succeeded++;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    40
    $metis_time += $1;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    41
  }
32518
boehmes
parents: 32517
diff changeset
    42
  if (m/^metis \(sledgehammer\): timeout/) {
32517
bfe7573a239b tuned output
nipkow
parents: 32509
diff changeset
    43
    $metis_timeout++;
32506
nipkow
parents: 32499
diff changeset
    44
  }
32499
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    45
}
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    46
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    47
open(FILE, ">>$log_file") || die "Cannot open file '$log_file'";
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    48
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    49
print FILE "\n\n\n";
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    50
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    51
if ($unhandled > 0) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    52
  print FILE "Number of unhandled exceptions: $unhandled\n\n";
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    53
}
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    54
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    55
if ($sh_calls > 0) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    56
  my $percent = $sh_succeeded / $sh_calls * 100;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    57
  my $time = $sh_time / 1000;
32508
212530b16e6e scaled avg_time
nipkow
parents: 32506
diff changeset
    58
  my $avg_time = $time / $sh_succeeded;
32499
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    59
  print FILE "Total number of sledgehammer calls: $sh_calls\n";
32517
bfe7573a239b tuned output
nipkow
parents: 32509
diff changeset
    60
  print FILE "Number of successful sledgehammer calls:  $sh_succeeded\n";
bfe7573a239b tuned output
nipkow
parents: 32509
diff changeset
    61
  printf FILE "Success rate: %.0f%%\n", $percent;
32509
boehmes
parents: 32508
diff changeset
    62
  printf FILE "Total time for successful sledgehammer calls: %.3f seconds\n", $time;
boehmes
parents: 32508
diff changeset
    63
  printf FILE "Average time for successful sledgehammer calls: %.3f seconds\n\n", $avg_time;
32499
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    64
}
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    65
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    66
if ($metis_calls > 0) {
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    67
  my $percent = $metis_succeeded / $metis_calls * 100;
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    68
  my $time = $metis_time / 1000;
32506
nipkow
parents: 32499
diff changeset
    69
  my $avg_time = $time / $metis_succeeded;
32517
bfe7573a239b tuned output
nipkow
parents: 32509
diff changeset
    70
  my $metis_exc = $sh_succeeded - $metis_succeeded - $metis_timeout;
32499
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    71
  print FILE "Total number of metis calls: $metis_calls\n";
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    72
  print FILE "Number of successful metis calls: $metis_succeeded\n";
32517
bfe7573a239b tuned output
nipkow
parents: 32509
diff changeset
    73
  print FILE "Number of metis timeouts: $metis_timeout\n";
bfe7573a239b tuned output
nipkow
parents: 32509
diff changeset
    74
  print FILE "Number of metis exceptions: $metis_exc\n";
bfe7573a239b tuned output
nipkow
parents: 32509
diff changeset
    75
  printf FILE "Success rate: %.0f%%\n", $percent;
32509
boehmes
parents: 32508
diff changeset
    76
  printf FILE "Total time for successful metis calls: %.3f seconds\n", $time;
boehmes
parents: 32508
diff changeset
    77
  printf FILE "Average time for successful metis calls: %.3f seconds\n", $avg_time;
32499
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    78
}
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    79
909a6447700a add report script for Mirabelle
boehmes
parents:
diff changeset
    80
close(FILE);