Rubber-stamped by Brady Eidson.
[webbrowser.git] / SunSpider / make-hosted
blobe4531a45f9efc2a77de2d32a777c46bd501357aa
1 #!/usr/bin/perl -w
3 # Copyright (C) 2007 Apple Inc. All rights reserved.
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
8 # 1. Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 # 2. Redistributions in binary form must reproduce the above copyright
11 # notice, this list of conditions and the following disclaimer in the
12 # documentation and/or other materials provided with the distribution.
14 # THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 use strict;
28 open TEMPLATE, "<resources/TEMPLATE.html";
29 my $template = do { local $/; <TEMPLATE> };
30 close TEMPLATE;
32 open DRIVER_TEMPLATE, "<resources/driver-TEMPLATE.html";
33 my $driverTemplate = do { local $/; <DRIVER_TEMPLATE> };
34 close DRIVER_TEMPLATE;
36 open RESULTS_TEMPLATE, "<resources/results-TEMPLATE.html";
37 my $resultsTemplate = do { local $/; <RESULTS_TEMPLATE> };
38 close RESULTS_TEMPLATE;
40 my @tests = ();
41 my @categories = ();
42 my %uniqueCategories = ();
44 my @suites = ("sunspider-0.9", "sunspider-0.9.1");
46 foreach my $suite (@suites) {
48 mkdir "hosted/${suite}";
50 open TESTLIST, "<./tests/${suite}/LIST";
51 while (<TESTLIST>) {
52 chomp;
53 next unless $_;
54 push @tests, $_;
55 my $category = $_;
56 $category =~ s/-.*//;
57 if (!$uniqueCategories{$category}) {
58 push @categories, $category;
59 $uniqueCategories{$category} = $category;
62 close TESTLIST;
64 for my $test (@tests) {
65 my $name = "${test}";
67 open SCRIPT, "<tests/${suite}/${test}.js";
68 my $script = do { local $/; <SCRIPT> };
69 close SCRIPT;
71 my $output = $template;
72 $output =~ s/\@NAME\@/${name}/g;
73 $output =~ s/\@SCRIPT\@/${script}/g;
75 open OUTPUT, ">hosted/${suite}/${test}.html";
76 print OUTPUT $output;
77 close OUTPUT;
80 my $output = $driverTemplate;
81 $output =~ s/\@SUITE\@/${suite}/g;
83 open OUTPUT, ">hosted/${suite}/driver.html";
84 print OUTPUT $output;
85 close OUTPUT;
87 $output = $resultsTemplate;
88 $output =~ s/\@SUITE\@/${suite}/g;
90 open OUTPUT, ">hosted/${suite}/results.html";
91 print OUTPUT $output;
92 close OUTPUT;
95 my $prefix = "var tests = [ " . join(", ", map { '"' . $_ . '"' } @tests) . " ];\n";
96 $prefix .= "var categories = [ " . join(", ", map { '"' . $_ . '"' } @categories) . " ];\n";
98 open PREFIX, ">hosted/${suite}/sunspider-test-prefix.js";
99 print PREFIX $prefix;
100 close PREFIX;
105 system("cp resources/sunspider-analyze-results.js hosted");
106 system("cp resources/sunspider-compare-results.js hosted");
107 print "hosted/sunspider.html is ready to use.\n";