SunSpider:
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 24 Oct 2007 00:40:35 +0000 (00:40 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 24 Oct 2007 00:40:35 +0000 (00:40 +0000)
        Reviewed by Darin.

        - Don't hardcode my path to testkjs

        * sunspider-compare-results:

WebKitTools:

        Reviewed by Darin.

        - add wrapper that finds the right copy of testkjs

        * Scripts/sunspider-compare-results: Added.

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

SunSpider/ChangeLog
SunSpider/sunspider-compare-results
WebKitTools/ChangeLog
WebKitTools/Scripts/sunspider-compare-results [new file with mode: 0755]

index 5f698d9..4a2baf7 100644 (file)
@@ -1,6 +1,14 @@
 2007-10-23  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Darin.
+
+        - Don't hardcode my path to testkjs
+        
+        * sunspider-compare-results:
+
+2007-10-23  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
         
         - Add a compare script to compare results, and improve formatting of standard results a bit.
 
index c6fa337..218c394 100755 (executable)
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 
 use strict;
+use Getopt::Long;
 use File::Basename;
 
+my $showHelp = 0;
+my $jsShellPath;
+
 my $programName = basename($0);
 my $usage = <<EOF;
-Usage: $programName [file 1] [file 2]
+Usage: $programName --shell=[path] [options] FILE FILE
+  --help        Show this help message
+  --shell       Path to javascript shell
 EOF
 
-if (scalar @ARGV < 2) {
-    print STDERR $usage;
-    exit 1;
+GetOptions('shell=s' => \$jsShellPath,
+           'help' => \$showHelp);
+
+if (scalar @ARGV < 2 || !$jsShellPath || $showHelp) {
+   print STDERR $usage;
+   exit 1;
 }
 
 sub readResultsFile($)
@@ -80,8 +89,6 @@ $output .= "var output2 = " . readResultsFile($ARGV[1]) . ";\n";
 
 dumpToFile($output, "tmp/sunspider-comparison-data.js");
 
-my $jsShellPath = "/Users/mjs/Work/symroots/Release/testkjs";
-
 system("$jsShellPath", "-f", "tmp/sunspider-test-prefix.js", "-f", "tmp/sunspider-comparison-data.js", "-f", "resources/sunspider-compare-results.js");
 
 
index 1f531eb..cf62d32 100644 (file)
@@ -1,3 +1,11 @@
+2007-10-23  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+        - add wrapper that finds the right copy of testkjs
+        
+        * Scripts/sunspider-compare-results: Added.
+
 2007-10-23  Kevin McCullough  <kmccullough@apple.com>
 
         Reviewed by Sam.
diff --git a/WebKitTools/Scripts/sunspider-compare-results b/WebKitTools/Scripts/sunspider-compare-results
new file mode 100755 (executable)
index 0000000..ee84101
--- /dev/null
@@ -0,0 +1,98 @@
+#!/usr/bin/perl -w
+
+# Copyright (C) 2007 Apple Inc.  All rights reserved.
+# Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+
+use strict;
+use FindBin;
+use Getopt::Long qw(:config pass_through);
+use lib $FindBin::Bin;
+use webkitdirs;
+use POSIX;
+
+
+# determine configuration
+setConfiguration();
+my $configuration = configuration();
+
+my $root;
+my $showHelp = 0;
+
+my $programName = basename($0);
+my $usage = <<EOF;
+Usage: $programName [options] FILE FILE
+  --help        Show this help message
+  --root        Path to root tools build
+EOF
+
+GetOptions('root=s' => sub { my ($argName, $value); setConfigurationProductDir(Cwd::abs_path($value)); },
+           'help' => \$showHelp);
+
+if ($showHelp || scalar @ARGV < 2) {
+   print STDERR $usage;
+   exit 1;
+}
+
+sub buildTestKJS
+{
+    if (!defined($root)){
+        chdirWebKit();
+        my $buildResult = system "WebKitTools/Scripts/build-testkjs", "--" . $configuration;
+        if ($buildResult) {
+            print STDERR "Compiling testkjs failed!\n";
+            exit WEXITSTATUS($buildResult);
+        }
+    }
+}
+
+sub setupEnviromentForExecution($)
+{
+    my ($productDir) = @_;
+    print "Starting sunspider-compare-results with DYLD_FRAMEWORK_PATH set to point to built JavaScriptCore in $productDir.\n";
+    $ENV{DYLD_FRAMEWORK_PATH} = $productDir;
+    # FIXME: Other platforms may wish to augment this method to use LD_LIBRARY_PATH, etc.
+}
+
+sub testKJSPath($)
+{
+    my ($productDir) = @_;
+    my $testkjsName = "testkjs";
+    $testkjsName .= "_debug"  if (isCygwin() && ($configuration eq "Debug"));
+    return "$productDir/$testkjsName";
+}
+
+buildTestKJS();
+
+chdirWebKit();
+chdir("SunSpider");
+
+my $productDir = productDir();
+# FIXME: This hack should be pushed down into productDir()
+$productDir .= "/JavaScriptCore" if (isQt() or isGtk());
+
+setupEnviromentForExecution($productDir);
+my @args = ("--shell", testKJSPath($productDir));
+# This code could be removed if we chose to pass extra args to sunspider instead of Xcode
+
+exec "./sunspider-compare-results", @args, @ARGV;