[iOS Sim Debug] ASSERTION FAILED: m_downloads.isEmpty() Layout Test http/tests/websoc...
[WebKit-https.git] / PerformanceTests / 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 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 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 open DRIVER_TEMPLATE, "<resources/driver-TEMPLATE.html";
33 my $driverTemplate = do { local $/; <DRIVER_TEMPLATE> };
34 close DRIVER_TEMPLATE;
35
36 open RESULTS_TEMPLATE, "<resources/results-TEMPLATE.html";
37 my $resultsTemplate = do { local $/; <RESULTS_TEMPLATE> };
38 close RESULTS_TEMPLATE;
39
40 my @suites = ("sunspider-0.9", "sunspider-0.9.1", "sunspider-1.0", "sunspider-1.0.1", "sunspider-1.0.2");
41
42 foreach my $suite (@suites) {
43
44     my @tests = ();
45     my @categories = ();
46     my %uniqueCategories = ();
47
48     mkdir "hosted/${suite}";
49
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;
60         }
61     }
62     close TESTLIST;
63
64     my @testContents = ();
65     for my $test (@tests) {
66         my $name = "${test}";
67
68         open SCRIPT, "<tests/${suite}/${test}.js";
69         my $script = do { local $/; <SCRIPT> };
70         close SCRIPT;
71
72         my $output = $template;
73         $output =~ s/\@NAME\@/${name}/g;
74         $output =~ s/\@SCRIPT\@/${script}/g;
75         $output =~ s/\\/\\\\/g;
76         $output =~ s/"/\\"/g;
77         $output =~ s/\n/\\n\\\n/g;
78         $output = $output;
79         push @testContents, $output;
80     }
81
82     my $output = $driverTemplate;
83     $output =~ s/\@SUITE\@/${suite}/g;
84
85     open OUTPUT, ">hosted/${suite}/driver.html";
86     print OUTPUT $output;
87     close OUTPUT;
88
89     $output = $resultsTemplate;
90     $output =~ s/\@SUITE\@/${suite}/g;
91
92     open OUTPUT, ">hosted/${suite}/results.html";
93     print OUTPUT $output;
94     close OUTPUT;
95
96     my $prefix = "var tests = [ " . join(", ", map { '"' . $_ . '"' } @tests) . " ];\n";
97     $prefix .= "var categories = [ " . join(", ", map { '"' . $_ . '"' } @categories) . " ];\n";
98
99     open PREFIX, ">hosted/${suite}/sunspider-test-prefix.js";
100     print PREFIX $prefix;
101     close PREFIX;
102
103     my $contents = "var testContents = [ " . join(", ", map { '"' . $_ . '"' } @testContents) . " ];\n";
104
105     open CONTENTS, ">hosted/${suite}/sunspider-test-contents.js";
106     print CONTENTS $contents;
107     close CONTENTS;    
108 }
109
110 system("cp resources/sunspider-analyze-results.js hosted");
111 system("cp resources/sunspider-compare-results.js hosted");
112 print "hosted/sunspider.html is ready to use.\n";