Reviewed by Geoff.
authorap@webkit.org <ap@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Mar 2008 18:48:09 +0000 (18:48 +0000)
committerap@webkit.org <ap@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Mar 2008 18:48:09 +0000 (18:48 +0000)
        * sunspider: Pause update daemon on Darwin to make results reliable
        again (workaround for <rdar://problem/5811127>).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@31215 268f45cc-cd09-0410-ab3c-d52691b4dbfc

SunSpider/ChangeLog
SunSpider/sunspider

index f90251f..29ceaee 100644 (file)
@@ -1,3 +1,10 @@
+2008-03-21  Alexey Proskuryakov  <ap@webkit.org>
+
+        Reviewed by Geoff.
+
+        * sunspider: Pause update daemon on Darwin to make results reliable
+        again (workaround for <rdar://problem/5811127>).
+
 2008-02-07  Eric Seidel  <eric@webkit.org>
 
         Reviewed by Sam.
index da8634f..3fd8f27 100755 (executable)
@@ -170,6 +170,33 @@ sub newestFile($$)
     return "$dir/$newestFile";
 }
 
+sub isDarwin()
+{
+    return ($^O eq "darwin");
+}
+
+my $updateSuspended = 0;
+
+sub suspendUpdate()
+{
+    print "Suspending update daemon...\n";
+    $SIG{INT} = sub { resumeUpdate(); exit; };
+    $updateSuspended = !(system "sudo -p 'Please provide your password for sudo: ' killall -STOP update");
+    if (!$updateSuspended) {
+        print "Could not suspend update.\n";
+    }
+}
+
+sub resumeUpdate()
+{
+    if ($updateSuspended) {
+        print "Resuming update daemon...\n";
+        system "sudo killall -CONT update";
+    }
+    $SIG{INT} = 'DEFAULT';
+}
+
+
 loadTestsList();
 if ($testsPattern) {
     print STDERR "Found " . scalar(@tests) . " tests matching '" . $testsPattern . "'\n";
@@ -177,6 +204,9 @@ if ($testsPattern) {
     print STDERR "Found " . scalar(@tests) . " tests\n";
 }
 die "No tests to run"  unless scalar(@tests);
+
+suspendUpdate() if isDarwin(); # workaround for <rdar://problem/5811127>
+
 print STDERR "Running SunSpider once for warmup, then " . ($runShark ? "under Shark" : "$testRuns time" . ($testRuns == 1 ? "" : "s")) . "\n";
 writePrefixFile();
 
@@ -198,6 +228,8 @@ while ($count++ < $testRuns) {
 }
 print "]\n";
 
+resumeUpdate() if isDarwin(); # workaround for <rdar://problem/5811127>
+
 my $output = "var output = [\n" . join(",\n", @results) . "\n];\n";
 dumpToFile($output, $resultsFile);
 dumpToFile(File::Spec->rel2abs($resultsFile), "tmp/baseline-filename.txt") if $setBaseline;