From 3f29d64ac91bf11fbc1d26df6854ba37ad707ead Mon Sep 17 00:00:00 2001 From: Chris H-C Date: Tue, 5 Jul 2016 09:34:33 -0400 Subject: [PATCH 8/9] bug 1218576 - Update test browser_use_counters.js to use aggregated child telemetry waitOnCondition is used to wait for the telemetry batch to be processed (roughly every 2s). It resolves and rejects to the same value as there are a couple of xfail tests that need the wrong answer. MozReview-Commit-ID: I1JqEXQSL7d --- dom/base/test/browser_use_counters.js | 39 +++++++++++++++-------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/dom/base/test/browser_use_counters.js b/dom/base/test/browser_use_counters.js index 48a3b76..4e2ac16 100644 --- a/dom/base/test/browser_use_counters.js +++ b/dom/base/test/browser_use_counters.js @@ -99,22 +99,17 @@ function waitForPageLoad(browser) { }); } -function grabHistogramsFromContent(browser, use_counter_middlefix) { - return ContentTask.spawn(browser, { middlefix: use_counter_middlefix }, function* (arg) { - let telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); - function snapshot_histogram(name) { - return telemetry.getHistogramById(name).snapshot(); - } - - let histogram_page_name = "USE_COUNTER2_" + arg.middlefix + "_PAGE"; - let histogram_document_name = "USE_COUNTER2_" + arg.middlefix + "_DOCUMENT"; - let histogram_page = snapshot_histogram(histogram_page_name); - let histogram_document = snapshot_histogram(histogram_document_name); - let histogram_docs = snapshot_histogram("CONTENT_DOCUMENTS_DESTROYED"); - let histogram_toplevel_docs = snapshot_histogram("TOP_LEVEL_CONTENT_DOCUMENTS_DESTROYED"); - return [histogram_page.sum, histogram_document.sum, - histogram_docs.sum, histogram_toplevel_docs.sum]; - }); +function grabHistogramsFromContent(use_counter_middlefix, page_before) { + let telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); + let gather = () => [ + telemetry.getHistogramById("USE_COUNTER2_" + use_counter_middlefix + "_PAGE").snapshot().sum, + telemetry.getHistogramById("USE_COUNTER2_" + use_counter_middlefix + "_DOCUMENT").snapshot().sum, + telemetry.getHistogramById("CONTENT_DOCUMENTS_DESTROYED").snapshot().sum, + telemetry.getHistogramById("TOP_LEVEL_CONTENT_DOCUMENTS_DESTROYED").snapshot().sum, + ]; + return BrowserTestUtils.waitForCondition(() => { + return page_before != telemetry.getHistogramById("USE_COUNTER2_" + use_counter_middlefix + "_PAGE").snapshot().sum; + }).then(gather, gather); } var check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix, check_documents=true) { @@ -128,7 +123,7 @@ var check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix // interested in. let [histogram_page_before, histogram_document_before, histogram_docs_before, histogram_toplevel_docs_before] = - yield grabHistogramsFromContent(gBrowser.selectedBrowser, use_counter_middlefix); + yield grabHistogramsFromContent(use_counter_middlefix); gBrowser.selectedBrowser.loadURI(gHttpTestRoot + "file_use_counter_outer.html"); yield waitForPageLoad(gBrowser.selectedBrowser); @@ -169,7 +164,7 @@ var check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix // Grab histograms again and compare. let [histogram_page_after, histogram_document_after, histogram_docs_after, histogram_toplevel_docs_after] = - yield grabHistogramsFromContent(gBrowser.selectedBrowser, use_counter_middlefix); + yield grabHistogramsFromContent(use_counter_middlefix, histogram_page_before); is(histogram_page_after, histogram_page_before + 1, "page counts for " + use_counter_middlefix + " after are correct"); @@ -192,7 +187,7 @@ var check_use_counter_img = Task.async(function* (file, use_counter_middlefix) { // interested in. let [histogram_page_before, histogram_document_before, histogram_docs_before, histogram_toplevel_docs_before] = - yield grabHistogramsFromContent(gBrowser.selectedBrowser, use_counter_middlefix); + yield grabHistogramsFromContent(use_counter_middlefix); gBrowser.selectedBrowser.loadURI(gHttpTestRoot + "file_use_counter_outer.html"); yield waitForPageLoad(gBrowser.selectedBrowser); @@ -234,7 +229,7 @@ var check_use_counter_img = Task.async(function* (file, use_counter_middlefix) { // Grab histograms again and compare. let [histogram_page_after, histogram_document_after, histogram_docs_after, histogram_toplevel_docs_after] = - yield grabHistogramsFromContent(gBrowser.selectedBrowser, use_counter_middlefix); + yield grabHistogramsFromContent(use_counter_middlefix, histogram_page_before); is(histogram_page_after, histogram_page_before + 1, "page counts for " + use_counter_middlefix + " after are correct"); is(histogram_document_after, histogram_document_before + 1, @@ -258,7 +253,7 @@ var check_use_counter_direct = Task.async(function* (file, use_counter_middlefix // interested in. let [histogram_page_before, histogram_document_before, histogram_docs_before, histogram_toplevel_docs_before] = - yield grabHistogramsFromContent(gBrowser.selectedBrowser, use_counter_middlefix); + yield grabHistogramsFromContent(use_counter_middlefix); gBrowser.selectedBrowser.loadURI(gHttpTestRoot + file); yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() { @@ -287,7 +282,7 @@ var check_use_counter_direct = Task.async(function* (file, use_counter_middlefix // Grab histograms again and compare. let [histogram_page_after, histogram_document_after, histogram_docs_after, histogram_toplevel_docs_after] = - yield grabHistogramsFromContent(gBrowser.selectedBrowser, use_counter_middlefix); + yield grabHistogramsFromContent(use_counter_middlefix, histogram_page_before); (xfail ? todo_is : is)(histogram_page_after, histogram_page_before + 1, "page counts for " + use_counter_middlefix + " after are correct"); (xfail ? todo_is : is)(histogram_document_after, histogram_document_before + 1, -- 2.7.4.windows.1