phonebookengines/contactsmodel/tsrc/performance/clog.pl
changeset 0 e686773b3f54
child 24 0ba2181d7c28
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines/contactsmodel/tsrc/performance/clog.pl	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,93 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+my %data;
+
+opendir(DIR, '.') or die "Can't opendir .: $!";
+while (defined(my $file = readdir(DIR))) {
+  if ($file =~ /log$/i) {
+    ReadLogFile($file);
+  }
+}
+closedir(DIR);
+
+DumpData();
+
+
+#
+# Subs.
+#
+
+sub ReadLogFile {
+  my $logName = shift;
+  my $logTitle = $logName;
+  $logTitle =~ s/(.*)\.log/$1/i;
+
+  open (LOG, $logName) or die "Couldn't open $logName for reading: $!\n";
+
+  my $testDes;
+
+  while (<LOG>) {
+    if (/^Test\s+\#\d+\s+(.*)/) {
+      $testDes = $1;
+    }
+    elsif (/^Result\s+\#([0-9.]+)\s+(.*)\s\[([0-9.]+)\]/) {
+      my $testNumber = $1;
+      my $description = "$testDes - $2";
+      my $result = $3;
+
+      if (exists $data{$testNumber}) {
+	unless ($description eq $data{$testNumber}->{description}) {
+	  die "Non-matching result description for test #$testNumber\n";
+	}
+
+	if (exists $data{$testNumber}->{results}->{$logTitle}) {
+	  die "Result already found for test #$testNumber in set $logTitle\n";
+	}
+	
+	$data{$testNumber}->{results}->{$logTitle} = $result;
+      }
+      else {
+	my $testData = { description => $description };
+	$testData->{results}->{$logTitle} = $result;
+	$data{$testNumber} = $testData;
+      }
+    }
+  }
+
+  close (LOG);
+}
+
+sub DumpData {
+  print "Description,#";
+
+  my $first = 1;
+  foreach my $thisTestNum (sort { $a <=> $b } keys %data) {
+    if ($first) {
+      # Print remainder to title row.
+      $first = 0;
+      foreach (sort keys %{$data{$thisTestNum}->{results}}) {
+	print ",$_";
+      }
+      print "\n";
+    }
+
+    print "$data{$thisTestNum}->{description},$thisTestNum";
+    foreach (sort keys %{$data{$thisTestNum}->{results}}) {
+      print ",$data{$thisTestNum}->{results}->{$_}";
+    }
+    print "\n";
+  }
+}