Esempio n. 1
0
    def RunTests(self):
        # Affinitize the tests.
        self._SplitTestsByAffinity()
        if not self._test_buckets and not self._no_device_tests:
            raise local_device_test_run.NoTestsError()

        def run_perf_tests(shard_id):
            if shard_id is None:
                s = HostTestShard(self._env,
                                  self._test_instance,
                                  self._no_device_tests,
                                  retries=3,
                                  timeout=self._timeout)
            else:
                if device_status.IsBlacklisted(str(self._devices[shard_id]),
                                               self._env.blacklist):
                    logging.warning(
                        'Device %s is not active. Will not create shard %s.',
                        str(self._devices[shard_id]), shard_id)
                    return None
                s = DeviceTestShard(self._env,
                                    self._test_instance,
                                    self._devices[shard_id],
                                    shard_id,
                                    self._test_buckets[shard_id],
                                    retries=self._env.max_tries,
                                    timeout=self._timeout)
            return s.RunTestsOnShard()

        device_indices = range(min(len(self._devices),
                                   len(self._test_buckets)))
        if self._no_device_tests:
            device_indices.append(None)
        shards = parallelizer.Parallelizer(device_indices).pMap(run_perf_tests)
        return [x for x in shards.pGet(self._timeout) if x is not None]
Esempio n. 2
0
  def __init__(self, devices):
    parallel_devices = parallelizer.Parallelizer(devices)
    descriptions = parallel_devices.pMap(lambda d: d.build_description).pGet(
        None)
    msg = ('More than one device available. Use -d/--device to select a device '
           'by serial.\n\nAvailable devices:\n')
    for d, desc in zip(devices, descriptions):
      msg += '  %s (%s)\n' % (d, desc)

    super(MultipleDevicesError, self).__init__(msg, is_infra_error=True)
Esempio n. 3
0
    def run_devices_tests():
      if not self._test_buckets:
        return []
      if self._devices is None:
        self._devices = self._GetAllDevices(
            self._env.devices, self._test_instance.known_devices_file)

      device_indices = range(min(len(self._devices), len(self._test_buckets)))
      shards = parallelizer.Parallelizer(device_indices).pMap(
          device_shard_helper)
      return [x for x in shards.pGet(self._timeout) if x is not None]
Esempio n. 4
0
def main():
  logging.getLogger().setLevel(logging.INFO)

  parser = argparse.ArgumentParser()
  script_common.AddDeviceArguments(parser)
  parser.add_argument('--adb-path',
                      help='Absolute path to the adb binary to use.')
  args = parser.parse_args()

  devil_dynamic_config = devil_env.EmptyConfig()
  if args.adb_path:
    devil_dynamic_config['dependencies'].update(
        devil_env.LocalConfigItem(
            'adb', devil_env.GetPlatform(), args.adb_path))
  devil_env.config.Initialize(configs=[devil_dynamic_config])

  reboot_into_bootloader(args.devices)
  devices = [
      d for d in fastboot.Fastboot.Devices() if not args.devices or
          str(d) in args.devices]
  parallel_devices = parallelizer.Parallelizer(devices)
  parallel_devices.pMap(unlock_bootloader).pGet(None)
  return 0
Esempio n. 5
0
 def testMethodCall(self):
     test_data = ['abc_foo', 'def_foo', 'ghi_foo']
     expected = ['abc_bar', 'def_bar', 'ghi_bar']
     r = parallelizer.Parallelizer(test_data).replace('_foo',
                                                      '_bar').pGet(0.1)
     self.assertEquals(expected, r)
Esempio n. 6
0
 def testInitEmptyList(self):
     with self.assertRaises(AssertionError):
         parallelizer.Parallelizer([])
Esempio n. 7
0
 def testInitWithNone(self):
     with self.assertRaises(AssertionError):
         parallelizer.Parallelizer(None)
Esempio n. 8
0
 def testInitEmptyList(self):
     r = parallelizer.Parallelizer([]).replace('a', 'b').pGet(0.1)
     self.assertEquals([], r)