diff -r 000000000000 -r 4f2f89ce4247 WebKitTools/Scripts/test-html5-parser --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebKitTools/Scripts/test-html5-parser Fri Sep 17 09:02:29 2010 +0300 @@ -0,0 +1,88 @@ +#!/usr/bin/perl +# Copyright (C) 2010 Google Inc. All rights reserved. +# +# 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 Google, Inc. 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 GOOGLE 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 GOOGLE 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. + +# Temporary script to test the HTML5 parser until it is able to +# run enough LayoutTests so that we know what changes we'll need +# to make to run-webkit-tests to support testing with the new parser. + +# NOTE: This script is a total hack and should be rolled into +# run-webkit-tests instead of being improved further. + +use strict; +use warnings; + +use FindBin; +use lib $FindBin::Bin; +use webkitdirs; +use VCSUtils; + +sub writeToFile($$) +{ + my ($filePath, $contents) = @_; + open NEWFILE, ">", "$filePath" or die "Could not create $filePath. $!\n"; + print NEWFILE $contents; + close NEWFILE; +} + +setConfiguration(); + +my $productDir = productDir(); +my $dumpTool = "$productDir/DumpRenderTree"; + +chdirWebKit(); + +my @args = argumentsForConfiguration(); +system("WebKitTools/Scripts/build-dumprendertree", @args) == 0 or die "Failed to build DumpRenderTree"; + +my @tests = ( + "html5lib/runner", +); + +foreach my $test (@tests) { + # This logic is super-dumb. Instead of making it smarter, we should + # roll this into run-webkit-tests once we can run enough of the layout tests. + my $testPath = "LayoutTests/$test.html"; + my $expectedPath = "LayoutTests/$test-expected-html5.txt"; + my $actualPath = "LayoutTests/$test-actual-html5.txt"; + my $command = "DYLD_FRAMEWORK_PATH=$productDir $dumpTool --html5-treebuilder $testPath"; + print $command, "\n"; + my $output = `$command`; + writeToFile($actualPath, $output); + if (-r $expectedPath) { + my $expectedOutput = `cat $expectedPath`; + if ($expectedOutput eq $output) { + print "$test -> PASS\n"; + } else { + print "$test -> FAIL, diff:\n"; + system("diff -u $expectedPath $actualPath"); + } + } else { + print "$test -> NEW, results:\n"; + writeToFile($expectedPath, $output); + print $output; + } +}