diff --git a/chrome/test/data/dromaeo/webrunner.js b/chrome/test/data/dromaeo/webrunner.js
index 63d777b..598998b 100644
--- a/chrome/test/data/dromaeo/webrunner.js
+++ b/chrome/test/data/dromaeo/webrunner.js
@@ -230,6 +230,8 @@
var time = 0;
var title, testName, testID, testSummary = {} , testSummaryNum = {}, maxTotal = 0, maxTotalNum = 0;
var nameDone = {};
+ var automated = false;
+ var post_json = false;
// Query String Parsing
var search = window.limitSearch || (window.location.search || "?").substr(1);
@@ -269,6 +271,11 @@
m = /^numTests=(\d+)$/.exec(parts[i]);
if (m)
numTests = Number(m[1]);
+
+ if (/^automated$/.exec(parts[i]))
+ automated = true;
+ if (/^post_json$/.exec(parts[i]))
+ post_json = true;
}
jQuery(function(){
@@ -377,17 +384,28 @@
}
} else if ( dataStore && dataStore.length ) {
- $("body").addClass("alldone");
- var div = jQuery("<div class='results'>Saving...</div>").insertBefore("#overview");
- jQuery.ajax({
- type: "POST",
- url: "store.php",
- data: "data=" + encodeURIComponent(JSON.stringify(dataStore)) + "&style=" + runStyle,
- success: function(id){
- var url = window.location.href.replace(/\?.*$/, "") + "?id=" + id;
- div.html("Results saved. You can access them at a later time at the following URL:<br/><strong><a href='" + url + "'>" + url + "</a></strong></div>");
- }
- });
+ if (!automated) {
+ $("body").addClass("alldone");
+ var div = jQuery("<div class='results'>Saving...</div>").insertBefore("#overview");
+ jQuery.ajax({
+ type: "POST",
+ url: "store.php",
+ data: "data=" + encodeURIComponent(JSON.stringify(dataStore)) + "&style=" + runStyle,
+ success: function(id){
+ var url = window.location.href.replace(/\?.*$/, "") + "?id=" + id;
+ div.html("Results saved. You can access them at a later time at the following URL:<br/><strong><a href='" + url + "'>" + url + "</a></strong></div>");
+ }
+ });
+ } else if (post_json) {
+ jQuery.ajax({
+ type: "POST",
+ url: "store.php",
+ data: "data=" + encodeURIComponent(JSON.stringify(window.automation.GetResults()))
+ });
+ }
+ else {
+ window.automation.SetDone();
+ }
}
}
}
@@ -406,20 +424,28 @@
time += timePerTest;
updateTime();
- $("#pause")
- .val("Run")
- .click(function(){
- if ( interval ) {
- interval = null;
- this.value = "Run";
- } else {
- if ( !interval ) {
- interval = true;
- dequeue();
+ if (!automated) {
+ $("#pause")
+ .val("Run")
+ .click(function(){
+ if ( interval ) {
+ interval = null;
+ this.value = "Run";
+ } else {
+ if ( !interval ) {
+ interval = true;
+ dequeue();
+ }
+ this.value = "Pause";
}
- this.value = "Pause";
- }
- });
+ });
+ } else {
+ $("#pause")
+ .val("Automated")
+ .click(function(){});
+ interval = true;
+ dequeue();
+ }
if ( window.limitSearch ) {
$("#pause").click();
@@ -778,4 +804,45 @@
updateTestPos({curID: testID, collection: tests[testID] ? tests[testID].name : testID, version: testVersions[testID]}, true);
}
+
+ if (automated) {
+ // Add some more stuff if running in automated mode.
+ window.automation = {}
+ window.automation.SetDone = function() {
+ console.log("Total: " + this.GetScore());
+ window.document.cookie = "__done=1; path=/";
+ }
+ window.automation.GetScore = function() {
+ return (runStyle === "runs/s" ? Math.pow(Math.E, maxTotal / maxTotalNum) : maxTotal).toString();
+ }
+ window.automation.GetResults = function() {
+ var results = {};
+ var aggregated = {};
+ function normalizeName(name) {
+ // At least for ui_tests, dots are not allowed.
+ return name.replace(".", "_");
+ }
+ function appendToAggregated(name, value) {
+ name = normalizeName(name);
+ (aggregated[name] || (aggregated[name] = [])).push(Math.log(value));
+ }
+
+ for (var i = 0; i < dataStore.length; i++) {
+ var data = dataStore[i];
+ var topName = data.collection.split("-", 1)[0];
+ appendToAggregated(topName, data.mean);
+ appendToAggregated(data.collection, data.mean);
+ results[normalizeName(data.collection + "/" + data.name)] = data.mean.toString();
+ }
+
+ for (var name in aggregated) {
+ var means = aggregated[name];
+ var sum = 0;
+ for (var i = 0; i < means.length; i++) sum += means[i];
+ results[name] = Math.pow(Math.E, sum/means.length).toString();
+ }
+
+ return results;
+ }
+ }
})();
--
2.8.0.rc3.226.g39d4020