WebCore:
[WebKit-https.git] / SunSpider / make-hosted
1 #!/usr/bin/perl -w
2
3 # Copyright (C) 2007 Apple Inc.  All rights reserved.
4 #
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.
13 #
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. 
25
26 use strict;
27
28 open TEMPLATE, "<resources/TEMPLATE.html";
29 my $template = do { local $/; <TEMPLATE> };
30 close TEMPLATE;
31
32 my @tests = ();
33 my @categories = ();
34 my %uniqueCategories = ();
35
36 open TESTLIST, "<./tests/LIST";
37 while (<TESTLIST>) {
38     chomp;
39     next unless $_;
40     push @tests, $_;
41     my $category = $_;
42     $category =~ s/-.*//;
43     if (!$uniqueCategories{$category}) {
44         push @categories, $category;
45         $uniqueCategories{$category} = $category;
46     }
47 }
48 close TESTLIST;
49
50 for my $test (@tests) {
51     my $name = "${test}";
52
53     open SCRIPT, "<tests/${test}.js";
54     my $script = do { local $/; <SCRIPT> };
55     close SCRIPT;
56
57     my $output = $template;
58     $output =~ s/\@NAME\@/${name}/g;
59     $output =~ s/\@SCRIPT\@/${script}/g;
60
61     open OUTPUT, ">hosted/${test}.html";
62     print OUTPUT $output;
63     close OUTPUT;
64 }
65
66
67 my $prefix = "var tests = [ " . join(", ", map { '"' . $_ . '"' } @tests) . " ];\n";
68 $prefix .= "var categories = [ " . join(", ", map { '"' . $_ . '"' } @categories) . " ];\n";
69
70 open PREFIX, ">hosted/sunspider-test-prefix.js";
71 print PREFIX $prefix;
72 close PREFIX;
73
74 system("cp resources/sunspider-analyze-results.js hosted");
75 system("cp resources/sunspider-compare-results.js hosted");
76
77 print "hosted/sunspider.html is ready to use.\n";