Reworked r52853 after r52876 rolled it out.
authorossy@webkit.org <ossy@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Jan 2010 12:12:32 +0000 (12:12 +0000)
committerossy@webkit.org <ossy@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Jan 2010 12:12:32 +0000 (12:12 +0000)
Chomp the pid variable before passing it to kill and read the contents of
the pidfile in a platform independent manner.
First pach of https://bugs.webkit.org/show_bug.cgi?id=33153.

Patch by Andras Becsi <abecsi@inf.u-szeged.hu> on 2010-01-07
Reviewed by Kenneth Rohde Christiansen.

* Scripts/run-webkit-tests:

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

WebKitTools/ChangeLog
WebKitTools/Scripts/run-webkit-tests

index 3db78a9..aced797 100644 (file)
@@ -1,3 +1,14 @@
+2010-01-07  Andras Becsi  <abecsi@inf.u-szeged.hu>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Reworked r52853 after r52876 rolled it out.
+        Chomp the pid variable before passing it to kill and read the contents of
+        the pidfile in a platform independent manner.
+        First pach of https://bugs.webkit.org/show_bug.cgi?id=33153.
+
+        * Scripts/run-webkit-tests:
+
 2010-01-07  Chris Jerdonek  <chris.jerdonek@gmail.com>
 
         Reviewed by Adam Barth.
index 74766f0..e937671 100755 (executable)
@@ -143,7 +143,10 @@ my $showHelp = 0;
 my $stripEditingCallbacks = isCygwin();
 my $testHTTP = 1;
 my $testMedia = 1;
-my $testResultsDirectory = "/tmp/layout-test-results";
+my $testResultsDirectory = catfile(File::Spec->tmpdir(), "layout-test-results");
+my $layoutTestsSymLink = catfile(File::Spec->tmpdir(), "LayoutTests");
+my $httpdPidDir = catfile(File::Spec->tmpdir(), "WebKit");
+my $httpdPidFile = catfile($httpdPidDir, "httpd.pid");
 my $testsPerDumpTool = 1000;
 my $threaded = 0;
 # DumpRenderTree has an internal timeout of 15 seconds, so this must be > 15.
@@ -401,7 +404,7 @@ if ($pixelTests) {
     }
 }
 
-system "ln", "-s", $testDirectory, "/tmp/LayoutTests" unless -x "/tmp/LayoutTests";
+system "ln", "-s", $testDirectory, $layoutTestsSymLink unless -x $layoutTestsSymLink;
 
 my %ignoredFiles = ( "results.html" => 1 );
 my %ignoredDirectories = map { $_ => 1 } qw(platform);
@@ -1349,11 +1352,13 @@ sub openHTTPDIfNeeded()
 {
     return if $isHttpdOpen;
 
-    mkdir "/tmp/WebKit";
-    
-    if (-f "/tmp/WebKit/httpd.pid") {
-        my $oldPid = `cat /tmp/WebKit/httpd.pid`;
+    mkdir($httpdPidDir, 0755);
+
+    if (-f $httpdPidFile) {
+        open (PIDFILE, $httpdPidFile);
+        my $oldPid = <PIDFILE>;
         chomp $oldPid;
+        close PIDFILE;
         if (0 != kill 0, $oldPid) {
             print "\nhttpd is already running: pid $oldPid, killing...\n";
             kill 15, $oldPid;
@@ -1431,7 +1436,21 @@ sub closeHTTPD()
     close HTTPDIN;
     close HTTPDOUT;
 
-    kill 15, `cat /tmp/WebKit/httpd.pid` if -f "/tmp/WebKit/httpd.pid";
+    open (PIDFILE, $httpdPidFile);
+    my $httpdPid = <PIDFILE>;
+    chomp $httpdPid;
+    close PIDFILE;
+    if ($httpdPid) {
+        kill 15, $httpdPid;
+        my $retryCount = 20;
+        while ((0 != kill 0, $httpdPid) && $retryCount) {
+            sleep 1;
+            --$retryCount;
+        }
+
+        print STDERR "Timed out waiting for httpd to terminate!\n" unless $retryCount;
+    }
+    rmdir $httpdPidDir;
 
     $isHttpdOpen = 0;
 }