1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 from pylib
.gtest
import gtest_test_instance
6 from pylib
.gtest
import local_device_gtest_run
7 from pylib
.instrumentation
import instrumentation_test_instance
8 from pylib
.local
.device
import local_device_environment
9 from pylib
.local
.device
import local_device_instrumentation_test_run
10 from pylib
.remote
.device
import remote_device_environment
11 from pylib
.remote
.device
import remote_device_gtest_run
12 from pylib
.remote
.device
import remote_device_instrumentation_test_run
13 from pylib
.remote
.device
import remote_device_uirobot_test_run
14 from pylib
.uirobot
import uirobot_test_instance
17 def CreateTestRun(_args
, env
, test_instance
, error_func
):
18 if isinstance(env
, local_device_environment
.LocalDeviceEnvironment
):
19 if isinstance(test_instance
, gtest_test_instance
.GtestTestInstance
):
20 return local_device_gtest_run
.LocalDeviceGtestRun(env
, test_instance
)
21 if isinstance(test_instance
,
22 instrumentation_test_instance
.InstrumentationTestInstance
):
23 return (local_device_instrumentation_test_run
24 .LocalDeviceInstrumentationTestRun(env
, test_instance
))
26 if isinstance(env
, remote_device_environment
.RemoteDeviceEnvironment
):
27 if isinstance(test_instance
, gtest_test_instance
.GtestTestInstance
):
28 return remote_device_gtest_run
.RemoteDeviceGtestTestRun(
30 if isinstance(test_instance
,
31 instrumentation_test_instance
.InstrumentationTestInstance
):
32 return (remote_device_instrumentation_test_run
33 .RemoteDeviceInstrumentationTestRun(env
, test_instance
))
34 if isinstance(test_instance
, uirobot_test_instance
.UirobotTestInstance
):
35 return remote_device_uirobot_test_run
.RemoteDeviceUirobotTestRun(
39 error_func('Unable to create test run for %s tests in %s environment'
40 % (str(test_instance
), str(env
)))