• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2014 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5
6from pylib.gtest import gtest_test_instance
7from pylib.hostside import hostside_test_instance
8from pylib.instrumentation import instrumentation_test_instance
9from pylib.junit import junit_test_instance
10from pylib.monkey import monkey_test_instance
11from pylib.local.device import local_device_environment
12from pylib.local.device import local_device_gtest_run
13from pylib.local.device import local_device_instrumentation_test_run
14from pylib.local.device import local_device_monkey_test_run
15from pylib.local.machine import local_machine_environment
16from pylib.local.machine import local_machine_hostside_test_run
17from pylib.local.machine import local_machine_junit_test_run
18
19
20def CreateTestRun(env, test_instance, error_func):
21  if isinstance(env, local_device_environment.LocalDeviceEnvironment):
22    if isinstance(test_instance, gtest_test_instance.GtestTestInstance):
23      return local_device_gtest_run.LocalDeviceGtestRun(env, test_instance)
24    if isinstance(test_instance,
25                  instrumentation_test_instance.InstrumentationTestInstance):
26      return (local_device_instrumentation_test_run
27              .LocalDeviceInstrumentationTestRun(env, test_instance))
28    if isinstance(test_instance, monkey_test_instance.MonkeyTestInstance):
29      return (local_device_monkey_test_run
30              .LocalDeviceMonkeyTestRun(env, test_instance))
31
32  if isinstance(env, local_machine_environment.LocalMachineEnvironment):
33    if isinstance(test_instance, junit_test_instance.JunitTestInstance):
34      return (local_machine_junit_test_run
35              .LocalMachineJunitTestRun(env, test_instance))
36    if isinstance(test_instance, hostside_test_instance.HostsideTestInstance):
37      return (local_machine_hostside_test_run
38              .LocalMachineHostsideTestRun(env, test_instance))
39
40  error_func('Unable to create test run for %s tests in %s environment'
41             % (str(test_instance), str(env)))
42  raise RuntimeError('error_func must call exit inside.')
43