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