⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 run-javascriptcore-tests

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻
字号:
#!/usr/bin/perl -w# Copyright (C) 2005 Apple Computer, 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. # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of#     its contributors may be used to endorse or promote products derived#     from this software without specific prior written permission. ## THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.# Script to run the WebKit Open Source Project JavaScriptCore tests (adapted from Mozilla).use strict;use FindBin;use Getopt::Long qw(:config pass_through);use lib $FindBin::Bin;use webkitdirs;use POSIX;# determine configurationmy $configuration;setConfiguration();$configuration = configuration();my $jsDriverArgs = "";my $root; # intentionally left undefinedmy $run64Bit = 0;my $showHelp = 0;my $programName = basename($0);my $usage = <<EOF;Usage: $programName [options] [options to pass to build system]  --help                        Show this help message  --64-bit                      Use the 64bit jsc binary  --jsDriver-args=              A string of arguments to pass to jsDriver.pl  --root=                       Path to pre-built root containing jscEOFGetOptions(    '64-bit' => \$run64Bit,    'j|jsDriver-args=s' => \$jsDriverArgs,    'root=s' => \$root,    'help' => \$showHelp);# Assume any arguments left over from GetOptions are assumed to be build argumentsmy @buildArgs = @ARGV;# Arguments passed to --jsDriver-args (if any) are passed to jsDriver.plmy @jsArgs = split(" ", $jsDriverArgs);if ($showHelp) {   print STDERR $usage;   exit 1;}setConfigurationProductDir(Cwd::abs_path($root)) if (defined($root));if (isAppleMacWebKit() && !isTiger()) {    my $preferredArch = preferredArchitecture("JavaScriptCore");    setRun64Bit($run64Bit);    my $arch = preferredArchitecture("JavaScriptCore");    if ($arch ne $preferredArch) {        push(@jsArgs, "-a", $arch);    }}if (!defined($root)){    chdirWebKit();    push(@buildArgs, argumentsForConfiguration());    my $arch = preferredArchitecture("JavaScriptCore");    push(@buildArgs, "ARCHS=$arch") if (isAppleMacWebKit());        print "Running: build-jsc " . join(" ", @buildArgs) . "\n";    my $buildResult = system "perl", "WebKitTools/Scripts/build-jsc", @buildArgs;    if ($buildResult) {        print STDERR "Compiling jsc failed!\n";        exit exitStatus($buildResult);    }}# Find JavaScriptCore directorychdirWebKit();chdir("JavaScriptCore");my $productDir = productDir();chdir "tests/mozilla" or die;$productDir .= "/JavaScriptCore" if isQt();$productDir .= "/Programs" if isGtk();$ENV{DYLD_FRAMEWORK_PATH} = $productDir;setPathForRunningWebKitApp(\%ENV) if isCygwin();sub jscPath($){    my ($productDir) = @_;    my $jscName = "jsc";    $jscName .= "_debug"  if (isCygwin() && ($configuration eq "Debug"));    return "$productDir/$jscName";}printf "Running: jsDriver.pl -e squirrelfish -s %s -f actual.html %s\n", jscPath($productDir), join(" ", @jsArgs);my $result = system "perl", "jsDriver.pl", "-e", "squirrelfish", "-s", jscPath($productDir), "-f", "actual.html", @jsArgs;exit exitStatus($result)  if $result;my %failures;open EXPECTED, "expected.html" or die;while (<EXPECTED>) {    last if /failures reported\.$/;}while (<EXPECTED>) {    chomp;    $failures{$_} = 1;}close EXPECTED;my %newFailures;open ACTUAL, "actual.html" or die;while (<ACTUAL>) {    last if /failures reported\.$/;}while (<ACTUAL>) {    chomp;    if ($failures{$_}) {        delete $failures{$_};    } else {        $newFailures{$_} = 1;    }}close ACTUAL;my $numNewFailures = keys %newFailures;if ($numNewFailures) {    print "\n** Danger, Will Robinson! Danger! The following failures have been introduced:\n";    foreach my $failure (sort keys %newFailures) {        print "\t$failure\n";    }}my $numOldFailures = keys %failures;if ($numOldFailures) {    print "\nYou fixed the following test";    print "s" if $numOldFailures != 1;    print ":\n";    foreach my $failure (sort keys %failures) {        print "\t$failure\n";    }}print "\n";print "$numNewFailures regression";print "s" if $numNewFailures != 1;print " found.\n";print "$numOldFailures test";print "s" if $numOldFailures != 1;print " fixed.\n";print "OK.\n" if $numNewFailures == 0;exit(1)  if $numNewFailures;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -