summaryrefslogtreecommitdiffstats
path: root/toolkit/components/telemetry/tests/python/test_usecounters.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/telemetry/tests/python/test_usecounters.py')
-rw-r--r--toolkit/components/telemetry/tests/python/test_usecounters.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/toolkit/components/telemetry/tests/python/test_usecounters.py b/toolkit/components/telemetry/tests/python/test_usecounters.py
new file mode 100644
index 0000000000..643bba27d7
--- /dev/null
+++ b/toolkit/components/telemetry/tests/python/test_usecounters.py
@@ -0,0 +1,70 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import sys
+import unittest
+from os import path
+
+import mozunit
+from test_histogramtools_non_strict import load_histogram
+
+TELEMETRY_ROOT_PATH = path.abspath(
+ path.join(path.dirname(__file__), path.pardir, path.pardir)
+)
+sys.path.append(TELEMETRY_ROOT_PATH)
+# The parsers live in a subdirectory of "build_scripts", account for that.
+# NOTE: if the parsers are moved, this logic will need to be updated.
+sys.path.append(path.join(TELEMETRY_ROOT_PATH, "build_scripts"))
+from mozparsers import parse_histograms
+from mozparsers.shared_telemetry_utils import ParserError
+
+
+class TestParser(unittest.TestCase):
+ def test_usecounter_collection_enabled(self):
+ SAMPLE_HISTOGRAM = {
+ "USE_COUNTER2_TEST_HISTOGRAM": {
+ "expires_in_version": "never",
+ "kind": "boolean",
+ "description": "Whether a foo used bar",
+ }
+ }
+ histograms = load_histogram(SAMPLE_HISTOGRAM)
+ parse_histograms.load_allowlist()
+
+ hist = parse_histograms.Histogram(
+ "USE_COUNTER2_TEST_HISTOGRAM",
+ histograms["USE_COUNTER2_TEST_HISTOGRAM"],
+ strict_type_checks=True,
+ )
+
+ ParserError.exit_func()
+ self.assertEqual(hist.dataset(), "nsITelemetry::DATASET_ALL_CHANNELS")
+ self.assertEqual(hist.products(), ["firefox", "fennec"])
+
+ def test_usecounter_histogram(self):
+ SAMPLE_HISTOGRAM = {
+ "USE_COUNTER2_TEST_HISTOGRAM": {
+ "expires_in_version": "never",
+ "kind": "boolean",
+ "description": "Whether a foo used bar",
+ }
+ }
+ histograms = load_histogram(SAMPLE_HISTOGRAM)
+ parse_histograms.load_allowlist()
+
+ hist = parse_histograms.Histogram(
+ "USE_COUNTER2_TEST_HISTOGRAM",
+ histograms["USE_COUNTER2_TEST_HISTOGRAM"],
+ strict_type_checks=True,
+ )
+
+ ParserError.exit_func()
+ self.assertEqual(hist.expiration(), "never")
+ self.assertEqual(hist.kind(), "boolean")
+ self.assertEqual(hist.description(), "Whether a foo used bar")
+ self.assertEqual(hist.products(), ["firefox", "fennec"])
+
+
+if __name__ == "__main__":
+ mozunit.main()