Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(663)

Unified Diff: telemetry/telemetry/testing/browser_test_context.py

Issue 2700563004: [Telemetry] Migrate browser_test_runner to use typ as the test runner (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: telemetry/telemetry/testing/browser_test_context.py
diff --git a/telemetry/telemetry/testing/browser_test_context.py b/telemetry/telemetry/testing/browser_test_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..f11937278580c9046627958a95ba5df22e54ea10
--- /dev/null
+++ b/telemetry/telemetry/testing/browser_test_context.py
@@ -0,0 +1,74 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import copy
+import sets
+
+
+_global_test_context = None
+
+
+def GetCopy():
+ return copy.deepcopy(_global_test_context)
+
+
+class TypTestContext(object):
+ """ The TestContext that is used for passing data from the main test process
+ to typ's subprocesses. Those includes:
+ _ client_configs: list of client configs that contain infos about binaries
+ to use.
+ _ finder_options: the commandline options object. This is an instance of
+ telemetry.internal.browser.browser_options.BrowserFinderOptions.
+ _ test_class: the name of the test class to be run.
+ _ test_case_ids_to_run: the ids of the test cases to be run. e.g:
+ foo.bar.Test1, foo.bar.Test2,..
+
+
+ This object is designed to be pickle-able so that it can be easily pass from
+ the main process to test subprocesses. It also supports immutable mode to
+ ensure its data won't be changed by the subprocesses.
+ """
+ def __init__(self):
+ self._client_configs = []
+ self._finder_options = None
+ self._test_class = None
+ self._test_cases_ids_to_run = set()
+ self._frozen = False
+
+ def Freeze(self):
+ """ Makes the |self| object immutable.
+
+ Calling setter on |self|'s property will throw exception.
+ """
+ assert self._finder_options
+ assert self._test_class
+ self._frozen = True
+ self._test_cases_ids_to_run = sets.ImmutableSet(self._test_cases_ids_to_run)
+ self._client_configs = tuple(self._client_configs)
+
+ @property
+ def finder_options(self):
+ return self._finder_options
+
+ @property
+ def client_configs(self):
+ return self._client_configs
+
+ @property
+ def test_class(self):
+ return self._test_class
+
+ @property
+ def test_case_ids_to_run(self):
+ return self._test_cases_ids_to_run
+
+ @finder_options.setter
+ def finder_options(self, value):
+ assert not self._frozen
+ self._finder_options = value
+
+ @test_class.setter
+ def test_class(self, value):
+ assert not self._test_class
+ self._test_class = value
« no previous file with comments | « telemetry/examples/browser_tests/simple_browser_test.py ('k') | telemetry/telemetry/testing/browser_test_runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698