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 devil
.android
import device_blacklist
6 from devil
.android
import device_errors
7 from devil
.android
import device_utils
8 from devil
.utils
import parallelizer
9 from pylib
.base
import environment
12 class LocalDeviceEnvironment(environment
.Environment
):
14 def __init__(self
, args
, _error_func
):
15 super(LocalDeviceEnvironment
, self
).__init
__()
16 self
._blacklist
= device_blacklist
.Blacklist(
17 args
.blacklist_file
or device_blacklist
.BLACKLIST_JSON
)
18 self
._device
_serial
= args
.test_device
20 self
._max
_tries
= 1 + args
.num_retries
21 self
._tool
_name
= args
.tool
25 available_devices
= device_utils
.DeviceUtils
.HealthyDevices(
27 if not available_devices
:
28 raise device_errors
.NoDevicesError
29 if self
._device
_serial
:
30 self
._devices
= [d
for d
in available_devices
31 if d
.adb
.GetDeviceSerial() == self
._device
_serial
]
33 raise device_errors
.DeviceUnreachableError(
34 'Could not find device %r' % self
._device
_serial
)
36 self
._devices
= available_devices
43 def parallel_devices(self
):
44 return parallelizer
.SyncParallelizer(self
._devices
)
48 return self
._max
_tries
52 return self
._tool
_name