Bug 888556 - Use a dynamic port in telemetry/ xpcshell tests so they can be run in parallel. r=nfroyd

This commit is contained in:
Mihnea Dobrescu-Balaur 2013-07-10 15:54:10 -07:00
parent f02f38b438
commit cbe020acda

View File

@ -18,7 +18,6 @@ Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/LightweightThemeManager.jsm"); Cu.import("resource://gre/modules/LightweightThemeManager.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm"); Cu.import("resource://gre/modules/XPCOMUtils.jsm");
const SERVER = "http://localhost:4444";
const IGNORE_HISTOGRAM = "test::ignore_me"; const IGNORE_HISTOGRAM = "test::ignore_me";
const IGNORE_HISTOGRAM_TO_CLONE = "MEMORY_HEAP_ALLOCATED"; const IGNORE_HISTOGRAM_TO_CLONE = "MEMORY_HEAP_ALLOCATED";
const IGNORE_CLONED_HISTOGRAM = "test::ignore_me_also"; const IGNORE_CLONED_HISTOGRAM = "test::ignore_me_also";
@ -41,13 +40,18 @@ const Telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry
const TelemetryPing = Cc["@mozilla.org/base/telemetry-ping;1"].getService(Ci.nsITelemetryPing); const TelemetryPing = Cc["@mozilla.org/base/telemetry-ping;1"].getService(Ci.nsITelemetryPing);
var httpserver = new HttpServer(); var httpserver = new HttpServer();
var serverStarted = false;
var gFinished = false; var gFinished = false;
function telemetry_ping () { function telemetry_ping () {
TelemetryPing.gatherStartup(); TelemetryPing.gatherStartup();
TelemetryPing.enableLoadSaveNotifications(); TelemetryPing.enableLoadSaveNotifications();
TelemetryPing.cacheProfileDirectory(); TelemetryPing.cacheProfileDirectory();
TelemetryPing.testPing(SERVER); if (serverStarted) {
TelemetryPing.testPing("http://localhost:" + httpserver.identity.primaryPort);
} else {
TelemetryPing.testPing("http://doesnotexist");
}
} }
// Mostly useful so that you can dump payloads from decodeRequestPayload. // Mostly useful so that you can dump payloads from decodeRequestPayload.
@ -83,7 +87,8 @@ function registerPingHandler(handler) {
} }
function nonexistentServerObserver(aSubject, aTopic, aData) { function nonexistentServerObserver(aSubject, aTopic, aData) {
httpserver.start(4444); httpserver.start(-1);
serverStarted = true;
// Provide a dummy function so it returns 200 instead of 404 to telemetry. // Provide a dummy function so it returns 200 instead of 404 to telemetry.
registerPingHandler(dummyHandler); registerPingHandler(dummyHandler);