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

Unified Diff: chrome/test/data/third_party/kraken/make-hosted.py

Issue 10070009: Add a copy of the Kraken Benchmark for performance testing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moved to third_party, correct licenses Created 8 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/third_party/kraken/make-hosted.py
diff --git a/chrome/test/data/third_party/kraken/make-hosted.py b/chrome/test/data/third_party/kraken/make-hosted.py
new file mode 100755
index 0000000000000000000000000000000000000000..370fbce0a5fe95ccc6843e375f884bb8fe64b001
--- /dev/null
+++ b/chrome/test/data/third_party/kraken/make-hosted.py
@@ -0,0 +1,106 @@
+#!/usr/bin/python
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+# Copyright (C) 2010 Mozilla Foundation
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from __future__ import with_statement
+import os
+import shutil
+
+suites = ["kraken-1.1", "kraken-1.0", "sunspider-0.9.1"]
+
+def readTemplate(path):
+ with open(path, 'r') as f:
+ return f.read()
+
+template = readTemplate("resources/TEMPLATE.html")
+driverTemplate = readTemplate("resources/driver-TEMPLATE.html")
+resultsTemplate = readTemplate("resources/results-TEMPLATE.html")
+
+def testListForSuite(suite):
+ tests = []
+ with open("./tests/%s/LIST" % suite, "r") as f:
+ for line in f.readlines():
+ tests.append(line.strip())
+ return tests
+
+def categoriesFromTests(tests):
+ categories = set()
+ for test in tests:
+ categories.add(test[:test.find("-")])
+ categories = list(categories)
+ categories.sort()
+ return categories
+
+def escapeTestContent(test,suite):
+ with open("tests/" + suite + "/" + test + ".js") as f:
+ script = f.read()
+ output = template
+ output = output.replace("@NAME@", test)
+ output = output.replace("@SCRIPT@", script)
+ dataPath = "tests/" + suite + "/" + test + "-data.js"
+ if (os.path.exists(dataPath)):
+ with open(dataPath) as f:
+ datascript = f.read()
+ output = output.replace("@DATASCRIPT@", datascript)
+ datascript = None
+ output = output.replace("\\", "\\\\")
+ output = output.replace('"', '\\"')
+ output = output.replace("\n", "\\n\\\n")
+ return output
+
+def testContentsFromTests(suite, tests):
+ testContents = [];
+ for test in tests:
+ testContents.append(escapeTestContent(test, suite))
+ return testContents
+
+def writeTemplate(suite, template, fileName):
+ output = template.replace("@SUITE@", suite)
+ with open("hosted/" + suite + "/" + fileName, "w") as f:
+ f.write(output)
+
+for suite in suites:
+ suiteDir = os.path.join("hosted", suite)
+ if not os.path.exists(suiteDir):
+ os.mkdir(suiteDir)
+ tests = testListForSuite(suite)
+ categories = categoriesFromTests(tests)
+ testContents = testContentsFromTests(suite, tests)
+ writeTemplate(suite, driverTemplate, "driver.html")
+ writeTemplate(suite, resultsTemplate, "results.html")
+
+ prefix = "var tests = [ " + ", ".join(['"%s"' % s for s in tests]) + " ];\n"
+ prefix += "var categories = [ " + ", ".join(['"%s"' % s for s in categories]) + " ];\n"
+ with open("hosted/" + suite + "/test-prefix.js", "w") as f:
+ f.write(prefix)
+
+ contents = "var testContents = [ " + ", ".join(['"%s"' % s for s in testContents]) + " ];\n"
+ with open("hosted/" + suite + "/test-contents.js", "w") as f:
+ f.write(contents)
+
+shutil.copyfile("resources/analyze-results.js", "hosted/analyze-results.js")
+shutil.copyfile("resources/compare-results.js", "hosted/compare-results.js")
+
+print("You're awesome!")

Powered by Google App Engine
This is Rietveld 408576698