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
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.
28 open TEMPLATE
, "<resources/TEMPLATE.html";
29 my $template = do { local $/; <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
;
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";
57 if (!$uniqueCategories{$category}) {
58 push @categories, $category;
59 $uniqueCategories{$category} = $category;
64 for my $test (@tests) {
67 open SCRIPT
, "<tests/${suite}/${test}.js";
68 my $script = do { local $/; <SCRIPT
> };
71 my $output = $template;
72 $output =~ s/\@NAME\@/${name}/g;
73 $output =~ s/\@SCRIPT\@/${script}/g;
75 open OUTPUT
, ">hosted/${suite}/${test}.html";
80 my $output = $driverTemplate;
81 $output =~ s/\@SUITE\@/${suite}/g;
83 open OUTPUT
, ">hosted/${suite}/driver.html";
87 $output = $resultsTemplate;
88 $output =~ s/\@SUITE\@/${suite}/g;
90 open OUTPUT
, ">hosted/${suite}/results.html";
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";
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";