Home | History | Annotate | Download | only in docs
      1 <!-- Copyright 2016 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.
      4 -->
      5 
      6 # Devil: Persistent Device List
      7 
      8 ## What is it?
      9 
     10 A persistent device list that stores all expected devices between builds. It
     11 is used by the perf test runner in order to properly shard tests by device
     12 affinity. This is important because the same performance test can yield
     13 meaningfully different results when run on different devices.
     14 
     15 ## Bots
     16 
     17 The list is usually located at one of these locations:
     18 
     19   - `/b/build/site_config/.known_devices`.
     20   - `~/.android`.
     21 
     22 Look at recipes listed below in order to find more up to date location.
     23 
     24 ## Local Runs
     25 
     26 The persistent device list is unnecessary for local runs. It is only used on the
     27 bots that upload data to the perf dashboard.
     28 
     29 ## Where it is used
     30 
     31 The persistent device list is used in performance test recipes via
     32 [api.chromium\_tests.steps.DynamicPerfTests](https://cs.chromium.org/chromium/build/scripts/slave/recipe_modules/chromium_tests/steps.py?q=DynamicPerfTests).
     33 For example, the [android/perf](https://cs.chromium.org/chromium/build/scripts/slave/recipes/android/perf.py) recipe uses it like this:
     34 
     35 ```python
     36 dynamic_perf_tests = api.chromium_tests.steps.DynamicPerfTests(
     37     builder['perf_id'], 'android', None,
     38     known_devices_file=builder.get('known_devices_file', None))
     39 dynamic_perf_tests.run(api, None)
     40 ```
     41 
     42