aboutsummaryrefslogtreecommitdiff
path: root/en/compatibility/tests/development/metrics.md
blob: 98eb3c8a25d140f422a78a92f2f6207e9e5be042 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Project: /_project.yaml
Book: /_book.yaml

{% include "_versions.html" %}

<!--
  Copyright 2018 The Android Open Source Project

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

# Native Metric Tests

Native metric tests are typically used for exercising hardware abstraction
layers (HALs) or interacting directly with lower-level system services. To
leverage continuous testing service, native metric tests should be built with
the [google-benchmark](https://github.com/google/benchmark){: .external}
framework.

## Example

See sample native test module setup at:
[bionic/benchmarks/bionic-benchmarks](https://android.googlesource.com/platform/bionic/+/master/benchmarks/bionic_benchmarks.cpp)

## Summary of steps

1. Test module configuration file should use the `BUILD_NATIVE_BENCHMARK` build
   rule so that google-benchmark dependencies are included automatically.
1. Build the test module with make:

   ```shell
   make -j40 bionic-benchmarks
   ```
1.  Automatic installation and run with the Trade Federation test harness:

    ```
    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=bionic-benchmarks
    ```

1. Manually install and run like so:

   1. Push the generated test binary onto device:

      ```
      adb push ${OUT}/data/benchmarktest/bionic-benchmarks/bionic-benchmarks32 \
        /data/benchmarktest/bionic-benchmarks/bionic-benchmarks32
      ```
   1. Execute the test by invoking test binary on device:

      ```
      adb shell /data/benchmarktest/bionic-benchmarks/bionic-benchmarks32
      ```