chromium/chrome/test/data/third_party/spaceport/README.chromium

Name: HTML5 Game Benchmarks
URL: git://github.com/sibblingz/PerfMarks
URL: http://spaceport.io/community/perfmarks
Version: 0
Date: May 14, 2012
Revision: c2dcbffeb492430c27160cb1ba5d6f1a2bf75d0a
License: Various, see license file
License File: LICENSE
Shipped: no

Additional files, not in the original suite:
  README.chromium

Modifications to the test suite to enable running as a cross browser performance test.
  js/index.js

How to update:

1. In js/index.js, change the 'step' attribute to add the required console.log
statements. Below is the patch.

diff --git a/js/index.js b/js/index.js
index 2c23d0d..059a57a 100644
--- a/js/index.js
+++ b/js/index.js
@@ -36,17 +36,25 @@ define([ 'tests/performance', 'testDom', 'testRunner', 'tables', 'util/report',
         function runPerformanceTests(callback) {
             callback = ensureCallback(callback);
 
             testRunner.run('performance', performance, {
                 done: function (err, results) {
                     allTestsDone(err, results);
                     callback(err, results);
                 },
-                step: testDone
+                step: function (err, name, results) {
+                    shortName = name.replace('performance.sprites.image.', '');
+                    if (results) {
+                       console.log(shortName + ": " + results.objectCount);
+                    } else {
+                       console.log(shortName + ": 0");
+                    }
+                    return testDone(err, name, results);
+                }
             });
         }
 
         function runAndUploadPerformanceTests(callback) {
             callback = ensureCallback(callback);
 
             runPerformanceTests(function (err, results) {
                 if (err) return callback(err);

2. In js/tests/sprites.js, apply the below patch to keep too many objects from
being created on fast desktop machines.

diff --git a/chrome/test/data/third_party/spaceport/js/tests/sprites.js b/chrome/test/data/third_party/spaceport/js/tests/s
index b491fe6..64b2d03 100644
--- a/chrome/test/data/third_party/spaceport/js/tests/sprites.js
+++ b/chrome/test/data/third_party/spaceport/js/tests/sprites.js
@@ -168,7 +168,7 @@ define([ 'sprites/sources', 'sprites/transformers', 'sprites/renderers', 'util/e
                 rawData.push([ objectCount, results ]);
                 
                 var timePerObjectEstimate = 1/(objectCount*results.fps);
-                var estimatedMaxObjects = Math.floor(1/(targetFramerate * timePerObjectEstimate));
+                var estimatedMaxObjects = Math.min(5000, Math.floor(1/(targetFramerate * timePerObjectEstimate)));
                 
                 var nextObjectCount = nextNumberToTry(fpsResults, estimatedMaxObjects);
                 test(nextObjectCount);