diff options
Diffstat (limited to 'WebKitTools/Scripts/make-js-test-wrappers')
-rwxr-xr-x | WebKitTools/Scripts/make-js-test-wrappers | 72 |
1 files changed, 64 insertions, 8 deletions
diff --git a/WebKitTools/Scripts/make-js-test-wrappers b/WebKitTools/Scripts/make-js-test-wrappers index b58978f..4ac21ea 100755 --- a/WebKitTools/Scripts/make-js-test-wrappers +++ b/WebKitTools/Scripts/make-js-test-wrappers @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# Copyright (C) 2006 Apple Computer, Inc. All rights reserved. +# Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -29,23 +29,38 @@ # Script to generate HTML wrappers for JavaScript tests from templates use strict; + use FindBin; use lib $FindBin::Bin; + +use File::Basename; +use File::Find; +use Getopt::Long; use webkitdirs; +sub directoryFilter; +sub findTemplateFiles(@); + +my $showHelp; + +my $result = GetOptions( + "help" => \$showHelp, +); + +if (!$result || $showHelp) { + print STDERR basename($0) . " [-h|--help] [path ...]\n"; + exit 1; +} + setConfiguration(); my $productDir = productDir(); -use strict; - chdirWebKit(); -my @templates = `find LayoutTests -name "TEMPLATE.html"`; +my @templates = findTemplateFiles(@ARGV); for my $tfile (@templates) { - chomp $tfile; - my $tpath = $tfile; $tpath =~ s:/resources/TEMPLATE.html$::; @@ -54,7 +69,11 @@ for my $tfile (@templates) { chdirWebKit(); chdir($tpath); - my @files = `find resources -name "*.js"`; + my @files; + my $fileFilter = sub { + push @files, $File::Find::name if substr($_, -3) eq ".js"; + }; + find({ preprocess => \&directoryFilter, wanted => $fileFilter }, "resources"); open TEMPLATE, "<resources/TEMPLATE.html"; my $template = do { local $/; <TEMPLATE> }; @@ -68,19 +87,31 @@ for my $tfile (@templates) { } for my $file (@files) { - chomp $file; next if $file =~ /js-test-.*\.js$/; next if $file =~ /SVGTestCase\.js/; + + next if $file =~ m:resources/NSResolver-exceptions\.js$:; next if $file =~ m:resources/attr-case-sensitivity\.js$:; + next if $file =~ m:resources/codegen-temporaries-multiple-global-blocks-1\.js$:; + next if $file =~ m:resources/codegen-temporaries-multiple-global-blocks-2\.js$:; + next if $file =~ m:resources/constructors-cached-navigate\.js$:; next if $file =~ m:resources/frame-loading-via-document-write\.js$:; + next if $file =~ m:resources/id-fastpath-almost-strict\.js$:; + next if $file =~ m:resources/id-fastpath-strict\.js$:; next if $file =~ m:resources/intersectsNode\.js$:; + next if $file =~ m:resources/p-in-scope\.js$:; next if $file =~ m:resources/script-element-gc\.js$:; next if $file =~ m:resources/script-element-gc\.js$:; next if $file =~ m:resources/script3\.js$:; next if $file =~ m:resources/script4\.js$:; next if $file =~ m:resources/script5\.js$:; next if $file =~ m:resources/select-options-remove\.js$:; + next if $file =~ m:resources/shadow-offset\.js$:; + next if $file =~ m:resources/tabindex-focus-blur-all\.js$:; + next if $file =~ m:resources/use-instanceRoot-event-bubbling\.js$:; + next if $file =~ m:resources/use-instanceRoot-event-listeners\.js$:; next if $file =~ m:resources/wrapper-identity-base\.js$:; + next if $file =~ m:resources/xhtml-scripts\.js$:; my $html = $file; $html =~ s:resources/(.*)\.js:$1.html:; @@ -101,3 +132,28 @@ for my $tfile (@templates) { close HTML; } } + +exit 0; + +sub directoryFilter +{ + return () if basename($File::Find::dir) eq ".svn"; + return @_; +} + +sub findTemplateFiles(@) { + my @args = @_; + my @templateFiles; + + push @args, "LayoutTests" if scalar(@args) == 0; + + my @paths = map { -f $_ ? dirname($_) : $_ } @args; + + my $fileFilter = sub { + push @templateFiles, $File::Find::name if $_ eq "TEMPLATE.html"; + }; + + find({ preprocess => \&directoryFilter, wanted => $fileFilter }, @paths); + + return @templateFiles; +} |