diff --git a/testing/mochitest/browser-test.js b/testing/mochitest/browser-test.js index 0a9444f93d52..2b68342b338d 100644 --- a/testing/mochitest/browser-test.js +++ b/testing/mochitest/browser-test.js @@ -423,7 +423,6 @@ function Tester(aTests, structuredLogger, aCallback) { this.Promise = ChromeUtils.import("resource://gre/modules/Promise.jsm", null).Promise; this.PromiseTestUtils = ChromeUtils.import("resource://testing-common/PromiseTestUtils.jsm", null).PromiseTestUtils; this.Assert = ChromeUtils.import("resource://testing-common/Assert.jsm", null).Assert; - this.PerTestCoverageUtils = ChromeUtils.import("resource://testing-common/PerTestCoverageUtils.jsm", null).PerTestCoverageUtils; this.PromiseTestUtils.init(); @@ -502,8 +501,6 @@ Tester.prototype = { this._coverageCollector = new CoverageCollector(coveragePath); } - this.PerTestCoverageUtils.beforeTestSync(); - this.structuredLogger.info("*** Start BrowserChrome Test Results ***"); Services.console.registerListener(this); this._globalProperties = Object.keys(window); @@ -693,8 +690,6 @@ Tester.prototype = { this._coverageCollector.recordTestCoverage(this.currentTest.path); } - this.PerTestCoverageUtils.afterTestSync(); - // Run cleanup functions for the current test before moving on to the // next one. let testScope = this.currentTest.scope; diff --git a/testing/mochitest/tests/SimpleTest/TestRunner.js b/testing/mochitest/tests/SimpleTest/TestRunner.js index 93b686f664dd..5c88ec44887b 100644 --- a/testing/mochitest/tests/SimpleTest/TestRunner.js +++ b/testing/mochitest/tests/SimpleTest/TestRunner.js @@ -365,10 +365,6 @@ TestRunner.runTests = function (/*url...*/) { coverageCollector = new CoverageCollector(TestRunner.jscovDirPrefix); } - let reset = false; - SpecialPowers.requestResetCoverageCounters(() => reset = true); - SpecialPowers.Services.tm.spinEventLoopUntil(() => reset); - TestRunner._urls = flattenArguments(arguments); var singleTestRun = this._urls.length <= 1 && TestRunner.repeat <= 1; @@ -533,10 +529,6 @@ TestRunner.testFinished = function(tests) { coverageCollector.recordTestCoverage(TestRunner.currentTestURL); } - let dumped = false; - SpecialPowers.requestDumpCoverageCounters(() => dumped = true); - SpecialPowers.Services.tm.spinEventLoopUntil(() => dumped); - TestRunner._lastTestFinished = TestRunner._currentTest; TestRunner._loopIsRestarting = false; diff --git a/testing/mozharness/scripts/desktop_unittest.py b/testing/mozharness/scripts/desktop_unittest.py index 42132868b708..575bb334a7a8 100755 --- a/testing/mozharness/scripts/desktop_unittest.py +++ b/testing/mozharness/scripts/desktop_unittest.py @@ -891,11 +891,9 @@ class DesktopUnittest(TestingMixin, MercurialScript, MozbaseMixin, if self.per_test_coverage: gcov_dir, jsvm_dir = self.set_coverage_env(env) - # Per-test reset/dump is only supported for xpcshell/mochitest and + # Per-test reset/dump is only supported for xpcshell and # Linux for the time being. - if not is_baseline_test and \ - suite_category in ['mochitest', 'xpcshell'] and \ - self._is_linux(): + if not is_baseline_test and suite == 'xpcshell' and self._is_linux(): env['GCOV_RESULTS_DIR'] = tempfile.mkdtemp() return_code = self.run_command(final_cmd, cwd=dirs['abs_work_dir'], diff --git a/testing/specialpowers/content/SpecialPowersObserverAPI.js b/testing/specialpowers/content/SpecialPowersObserverAPI.js index 740ab5f54478..10ebea0fe3ad 100644 --- a/testing/specialpowers/content/SpecialPowersObserverAPI.js +++ b/testing/specialpowers/content/SpecialPowersObserverAPI.js @@ -11,7 +11,6 @@ XPCOMUtils.defineLazyModuleGetters(this, { ExtensionTestCommon: "resource://testing-common/ExtensionTestCommon.jsm", NetUtil: "resource://gre/modules/NetUtil.jsm", Services: "resource://gre/modules/Services.jsm", - PerTestCoverageUtils: "resource://testing-common/PerTestCoverageUtils.jsm", }); this.SpecialPowersError = function(aMsg) { @@ -555,16 +554,16 @@ SpecialPowersObserverAPI.prototype = { } case "SPRequestDumpCoverageCounters": { - PerTestCoverageUtils.afterTest().then(() => - this._sendReply(aMessage, "SPRequestDumpCoverageCounters", {}) - ); + let codeCoverage = Cc["@mozilla.org/tools/code-coverage;1"]. + getService(Ci.nsICodeCoverage); + codeCoverage.dumpCounters(); return undefined; // See comment at the beginning of this function. } case "SPRequestResetCoverageCounters": { - PerTestCoverageUtils.beforeTest().then(() => - this._sendReply(aMessage, "SPRequestResetCoverageCounters", {}) - ); + let codeCoverage = Cc["@mozilla.org/tools/code-coverage;1"]. + getService(Ci.nsICodeCoverage); + codeCoverage.resetCounters(); return undefined; // See comment at the beginning of this function. } diff --git a/testing/specialpowers/content/specialpowers.js b/testing/specialpowers/content/specialpowers.js index 973c179212ed..ed15d4b4cb92 100644 --- a/testing/specialpowers/content/specialpowers.js +++ b/testing/specialpowers/content/specialpowers.js @@ -35,7 +35,9 @@ function SpecialPowers(window) { "SPPrefService", "SPProcessCrashService", "SPSetTestPluginEnabledState", - "SPCleanUpSTSData"]; + "SPCleanUpSTSData", + "SPRequestDumpCoverageCounters", + "SPRequestResetCoverageCounters"]; this.SP_ASYNC_MESSAGES = ["SpecialPowers.Focus", "SpecialPowers.Quit", @@ -46,9 +48,7 @@ function SpecialPowers(window) { "SPProcessCrashManagerWait", "SPStartupExtension", "SPUnloadExtension", - "SPExtensionMessage", - "SPRequestDumpCoverageCounters", - "SPRequestResetCoverageCounters"]; + "SPExtensionMessage"]; addMessageListener("SPPingService", this._messageListener); addMessageListener("SpecialPowers.FilesCreated", this._messageListener); addMessageListener("SpecialPowers.FilesError", this._messageListener); diff --git a/testing/specialpowers/content/specialpowersAPI.js b/testing/specialpowers/content/specialpowersAPI.js index 44bb6b1a92ca..6623eb9fe464 100644 --- a/testing/specialpowers/content/specialpowersAPI.js +++ b/testing/specialpowers/content/specialpowersAPI.js @@ -1982,24 +1982,12 @@ SpecialPowersAPI.prototype = { return this._sendSyncMessage("SPCleanUpSTSData", {origin, flags: flags || 0}); }, - requestDumpCoverageCounters(cb) { - let messageListener = _ => { - this._removeMessageListener("SPRequestDumpCoverageCounters", messageListener); - cb(); - }; - - this._addMessageListener("SPRequestDumpCoverageCounters", messageListener); - this._sendAsyncMessage("SPRequestDumpCoverageCounters", {}); + requestDumpCoverageCounters() { + this._sendSyncMessage("SPRequestDumpCoverageCounters", {}); }, - requestResetCoverageCounters(cb) { - let messageListener = _ => { - this._removeMessageListener("SPRequestResetCoverageCounters", messageListener); - cb(); - }; - - this._addMessageListener("SPRequestResetCoverageCounters", messageListener); - this._sendAsyncMessage("SPRequestResetCoverageCounters", {}); + requestResetCoverageCounters() { + this._sendSyncMessage("SPRequestResetCoverageCounters", {}); }, _nextExtensionID: 0, diff --git a/tools/code-coverage/tests/mochitest/test_coverage_specialpowers.html b/tools/code-coverage/tests/mochitest/test_coverage_specialpowers.html index 9d6bed4f7abc..eeba0ed81f2e 100644 --- a/tools/code-coverage/tests/mochitest/test_coverage_specialpowers.html +++ b/tools/code-coverage/tests/mochitest/test_coverage_specialpowers.html @@ -14,15 +14,13 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1380659 SimpleTest.waitForExplicitFinish(); - (async function() { - await new Promise(resolve => SpecialPowers.requestDumpCoverageCounters(resolve)); - SimpleTest.ok(true, "Counters dumped."); + SpecialPowers.requestDumpCoverageCounters(); + SimpleTest.ok(true, "Counters dumped."); - await new Promise(resolve => SpecialPowers.requestResetCoverageCounters(resolve)); - SimpleTest.ok(true, "Counters reset."); + SpecialPowers.requestResetCoverageCounters(); + SimpleTest.ok(true, "Counters reset."); - SimpleTest.finish(); - })(); + SimpleTest.finish();