Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(284)

Side by Side Diff: test/benchmarks/testcfg.py

Issue 22715004: Version 3.20.15 (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Add TypedArray API and correctness patches r16033 and r16084 Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « test/benchmarks/benchmarks.status ('k') | test/cctest/test-api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2013 the V8 project authors. All rights reserved.
2 # Redistribution and use in source and binary forms, with or without
3 # modification, are permitted provided that the following conditions are
4 # met:
5 #
6 # * Redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer.
8 # * Redistributions in binary form must reproduce the above
9 # copyright notice, this list of conditions and the following
10 # disclaimer in the documentation and/or other materials provided
11 # with the distribution.
12 # * Neither the name of Google Inc. nor the names of its
13 # contributors may be used to endorse or promote products derived
14 # from this software without specific prior written permission.
15 #
16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28
29 import os
30 import shutil
31 import subprocess
32 import tarfile
33
34 from testrunner.local import testsuite
35 from testrunner.objects import testcase
36
37
38 class BenchmarksTestSuite(testsuite.TestSuite):
39
40 def __init__(self, name, root):
41 super(BenchmarksTestSuite, self).__init__(name, root)
42 self.testroot = root
43
44 def ListTests(self, context):
45 tests = []
46 for test in [
47 "kraken/ai-astar",
48 "kraken/audio-beat-detection",
49 "kraken/audio-dft",
50 "kraken/audio-fft",
51 "kraken/audio-oscillator",
52 "kraken/imaging-darkroom",
53 "kraken/imaging-desaturate",
54 "kraken/imaging-gaussian-blur",
55 "kraken/json-parse-financial",
56 "kraken/json-stringify-tinderbox",
57 "kraken/stanford-crypto-aes",
58 "kraken/stanford-crypto-ccm",
59 "kraken/stanford-crypto-pbkdf2",
60 "kraken/stanford-crypto-sha256-iterative",
61
62 "octane/box2d",
63 "octane/code-load",
64 "octane/crypto",
65 "octane/deltablue",
66 "octane/earley-boyer",
67 "octane/gbemu",
68 "octane/mandreel",
69 "octane/navier-stokes",
70 "octane/pdfjs",
71 "octane/raytrace",
72 "octane/regexp",
73 "octane/richards",
74 "octane/splay",
75
76 "sunspider/3d-cube",
77 "sunspider/3d-morph",
78 "sunspider/3d-raytrace",
79 "sunspider/access-binary-trees",
80 "sunspider/access-fannkuch",
81 "sunspider/access-nbody",
82 "sunspider/access-nsieve",
83 "sunspider/bitops-3bit-bits-in-byte",
84 "sunspider/bitops-bits-in-byte",
85 "sunspider/bitops-bitwise-and",
86 "sunspider/bitops-nsieve-bits",
87 "sunspider/controlflow-recursive",
88 "sunspider/crypto-aes",
89 "sunspider/crypto-md5",
90 "sunspider/crypto-sha1",
91 "sunspider/date-format-tofte",
92 "sunspider/date-format-xparb",
93 "sunspider/math-cordic",
94 "sunspider/math-partial-sums",
95 "sunspider/math-spectral-norm",
96 "sunspider/regexp-dna",
97 "sunspider/string-base64",
98 "sunspider/string-fasta",
99 "sunspider/string-tagcloud",
100 "sunspider/string-unpack-code",
101 "sunspider/string-validate-input"]:
102 tests.append(testcase.TestCase(self, test))
103 return tests
104
105 def GetFlagsForTestCase(self, testcase, context):
106 result = []
107 result += context.mode_flags
108 if testcase.path.startswith("kraken"):
109 result.append(os.path.join(self.testroot, "%s-data.js" % testcase.path))
110 result.append(os.path.join(self.testroot, "%s.js" % testcase.path))
111 elif testcase.path.startswith("octane"):
112 result.append(os.path.join(self.testroot, "octane/base.js"))
113 result.append(os.path.join(self.testroot, "%s.js" % testcase.path))
114 result += ["-e", "BenchmarkSuite.RunSuites({});"]
115 elif testcase.path.startswith("sunspider"):
116 result.append(os.path.join(self.testroot, "%s.js" % testcase.path))
117 return testcase.flags + result
118
119 def GetSourceForTest(self, testcase):
120 filename = os.path.join(self.testroot, testcase.path + ".js")
121 with open(filename) as f:
122 return f.read()
123
124 def _DownloadIfNecessary(self, url, revision, target_dir):
125 # Maybe we're still up to date?
126 revision_file = "CHECKED_OUT_%s" % target_dir
127 checked_out_revision = None
128 if os.path.exists(revision_file):
129 with open(revision_file) as f:
130 checked_out_revision = f.read()
131 if checked_out_revision == revision:
132 return
133
134 # If we have a local archive file with the test data, extract it.
135 if os.path.exists(target_dir):
136 shutil.rmtree(target_dir)
137 archive_file = "downloaded_%s_%s.tar.gz" % (target_dir, revision)
138 if os.path.exists(archive_file):
139 with tarfile.open(archive_file, "r:gz") as tar:
140 tar.extractall()
141 with open(revision_file, "w") as f:
142 f.write(revision)
143 return
144
145 # No cached copy. Check out via SVN, and pack as .tar.gz for later use.
146 command = "svn co %s -r %s %s" % (url, revision, target_dir)
147 code = subprocess.call(command, shell=True)
148 if code != 0:
149 raise Exception("Error checking out %s benchmark" % target_dir)
150 with tarfile.open(archive_file, "w:gz") as tar:
151 tar.add("%s" % target_dir)
152 with open(revision_file, "w") as f:
153 f.write(revision)
154
155 def DownloadData(self):
156 old_cwd = os.getcwd()
157 os.chdir(os.path.abspath(self.root))
158
159 self._DownloadIfNecessary(
160 ("http://svn.webkit.org/repository/webkit/trunk/PerformanceTests/"
161 "SunSpider/tests/sunspider-1.0/"),
162 "153700", "sunspider")
163
164 self._DownloadIfNecessary(
165 ("http://kraken-mirror.googlecode.com/svn/trunk/kraken/tests/"
166 "kraken-1.1/"),
167 "8", "kraken")
168
169 self._DownloadIfNecessary(
170 "http://octane-benchmark.googlecode.com/svn/trunk/",
171 "22", "octane")
172
173 os.chdir(old_cwd)
174
175 def VariantFlags(self):
176 # Both --nocrankshaft and --stressopt are very slow.
177 return [[]]
178
179
180 def GetSuite(name, root):
181 return BenchmarksTestSuite(name, root)
OLDNEW
« no previous file with comments | « test/benchmarks/benchmarks.status ('k') | test/cctest/test-api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698