Index: build/android/pylib/host_driven/test_case.py |
diff --git a/build/android/pylib/host_driven/test_case.py b/build/android/pylib/host_driven/test_case.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2f71b28265e7bf809d444e9381db76cbe7eaa66b |
--- /dev/null |
+++ b/build/android/pylib/host_driven/test_case.py |
@@ -0,0 +1,58 @@ |
+# Copyright (c) 2012 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. |
+ |
+"""Base class for host-driven test cases. |
+ |
+This test case is intended to serve as the base class for any host-driven |
+test cases. It is similar to the Python unitttest module in that test cases |
+inherit from this class and add methods which will be run as tests. |
+ |
+When a HostDrivenTestCase object is instantiated, its purpose is to run only one |
+test method in the derived class. The test runner gives it the name of the test |
+method the instance will run. The test runner calls SetUp with the device ID |
+which the test method will run against. The test runner runs the test method |
+itself, collecting the result, and calls TearDown. |
+""" |
+ |
+import logging |
+import os |
+ |
+from pylib import android_commands |
+ |
+ |
+class HostDrivenTestCase(object): |
+ """Base class for host-driven test cases.""" |
+ |
+ _HOST_DRIVEN_TAG = 'HostDriven' |
+ |
+ def __init__(self, test_name): |
+ # test_name must match one of the test methods defined on a subclass which |
+ # inherits from this class. |
+ self.test_name = test_name |
+ class_name = self.__class__.__name__ |
+ self.qualified_name = '%s.%s' % (class_name, self.test_name) |
+ # Use tagged_name when creating results, so that we can identify host-driven |
+ # tests in the overall results. |
+ self.tagged_name = '%s_%s' % (self._HOST_DRIVEN_TAG, self.qualified_name) |
+ |
+ def SetUp(self, device, shard_index, build_type, push_deps, |
+ cleanup_test_files): |
+ self.device_id = device |
+ self.shard_index = shard_index |
+ self.build_type = build_type |
+ self.adb = android_commands.AndroidCommands(self.device_id) |
+ self.push_deps = push_deps |
+ self.cleanup_test_files = cleanup_test_files |
+ |
+ def TearDown(self): |
+ pass |
+ |
+ def GetOutDir(self): |
+ return os.path.join(os.environ['CHROME_SRC'], 'out', |
+ self.build_type) |
+ |
+ def Run(self): |
+ logging.info('Running host-driven test: %s', self.test_name) |
+ # Get the test method on the derived class and execute it |
+ return getattr(self, self.test_name)() |