diff options
Diffstat (limited to 'WebKitTools/Scripts/test-html5-parser')
-rwxr-xr-x | WebKitTools/Scripts/test-html5-parser | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/WebKitTools/Scripts/test-html5-parser b/WebKitTools/Scripts/test-html5-parser new file mode 100755 index 0000000..5b935b8 --- /dev/null +++ b/WebKitTools/Scripts/test-html5-parser @@ -0,0 +1,89 @@ +#!/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", + "html5lib/webkit-resumer", +); + +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-parser $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; + } +} |