add report script for Mirabelle
authorboehmes
Wed, 02 Sep 2009 21:33:16 +0200
changeset 32499 909a6447700a
parent 32498 1132c7c13f36
child 32500 7106aeb6dd64
add report script for Mirabelle
src/HOL/Mirabelle/lib/scripts/report.pl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Mirabelle/lib/scripts/report.pl	Wed Sep 02 21:33:16 2009 +0200
@@ -0,0 +1,69 @@
+#
+# Author: Sascha Boehme
+#
+# Reports for Mirabelle
+#
+
+my $log_file = $ARGV[0];
+
+open(FILE, "<$log_file") || die "Cannot open file '$log_file'";
+my @lines = <FILE>;
+close(FILE);
+
+my $unhandled = 0;
+
+my $sh_calls = 0;
+my $sh_succeeded = 0;
+my $sh_time = 0;
+
+my $metis_calls = 0;
+my $metis_succeeded = 0;
+my $metis_time = 0;
+
+foreach (@lines) {
+  if (m/^unhandled exception/) {
+    $unhandled++;
+  }
+  if (m/^sledgehammer:/) {
+    $sh_calls++;
+  }
+  if (m/^sledgehammer: succeeded \(([0-9]+)\)/) {
+    $sh_succeeded++;
+    $sh_time += $1;
+  }
+  if (m/^metis \(sledgehammer\):/) {
+    $metis_calls++;
+  }
+  if (m/^metis \(sledgehammer\): succeeded \(([0-9]+)\)/) {
+    $metis_succeeded++;
+    $metis_time += $1;
+  }
+}
+
+open(FILE, ">>$log_file") || die "Cannot open file '$log_file'";
+
+print FILE "\n\n\n";
+
+if ($unhandled > 0) {
+  print FILE "Number of unhandled exceptions: $unhandled\n\n";
+}
+
+if ($sh_calls > 0) {
+  my $percent = $sh_succeeded / $sh_calls * 100;
+  my $time = $sh_time / 1000;
+  print FILE "Total number of sledgehammer calls: $sh_calls\n";
+  print FILE "Number of successful sledgehammer calls: $sh_succeeded\n";
+  printf FILE "Percentage of successful sledgehammer calls: %.0f%%\n", $percent;
+  print FILE "Total time for successful sledgehammer calls: $time seconds\n\n";
+}
+
+if ($metis_calls > 0) {
+  my $percent = $metis_succeeded / $metis_calls * 100;
+  my $time = $metis_time / 1000;
+  print FILE "Total number of metis calls: $metis_calls\n";
+  print FILE "Number of successful metis calls: $metis_succeeded\n";
+  printf FILE "Percentage of successful metis calls: %.0f%%\n", $percent;
+  print FILE "Total time for successful metis calls: $time seconds\n";
+}
+
+close(FILE);