2022-09-19 06:57:01 -05:00
# OpenVINO coverage report build
The coverage report is generated using Lcov tool and based on profile data generated by GCC.
The generated reports are in HTML form and located in `<openvino_build>/coverage` . The reports are generated for the following components:
1. `inference` - Inference component is a part of OpenVINO Runtime library.
1. `core` - Core component is a part of OpenVINO Runtime library.
1. `low_precision_transformations` - Low Precision transformations is a part of OpenVINO Runtime library.
1. `openvino_transformations` - Common transformations is a part of OpenVINO Runtime library.
1. `inference_engine_legacy` - legacy OpenVINO library
1. `preprocessing` - OpenVINO G-API based preprocessing plugin.
1. `snippets` - OpenVINO snippets.
1. OpenVINO open-sources plugins:
- `hetero_plugin` - Heterogeneous plugin.
- `multi_plugin` - Multi plugin.
- `auto_plugin` - Auto plugin.
- `template_plugin` - Template plugin.
- `intel_gpu_plugin` - GPU plugin.
- `intel_cpu_plugin` - CPU plugin.
- `intel_gna_plugin` - GNA plugin.
## Build with profiling data support
To build coverage report, compile OpenVINO with an additional CMake option `-DENABLE_COVERAGE=ON` :
```bash
$ cmake -DENABLE_COVERAGE=ON .
```
And build OpenVINO as usual.
## Generate coverage report
2023-05-31 04:39:19 -05:00
In order to generate coverage reports, first of all, the tests must be run. Depending on how many tests are run, the better coverage percentage can be achieved. E.g. for `openvino` component, `InferenceEngineUnitTests` , `ieUnitTests` , `ieFuncTests` must be run as well as plugin tests.
2022-09-19 06:57:01 -05:00
```bash
2022-11-08 00:25:16 -06:00
$ ctest -V
2022-09-19 06:57:01 -05:00
```
2022-11-08 00:25:16 -06:00
OpenVINO components define several common groups which allow to run tests for separate component (with ctest argiment `-L GROUP_NAME` ):
- OV - core OpenVINO tests
- IR_FE - IR frontend tests
- ONNX_FE - ONNX frontend tests
- PADDLE_FE - Paddle frontend tests
- TF_FE - TensorFlow frontend tests
2023-04-25 07:18:24 -05:00
- TFL_FE - TensorFlow Lite frontend tests
2022-11-08 00:25:16 -06:00
- CPU - CPU plugin tests
- GPU - GPU plugin tests
- GNA - GNA plugin tests
2022-09-19 06:57:01 -05:00
After sufficient number of tests are executed, the coverage numbers can be calculated. In order to do this, run:
```bash
$ make ov_coverage
```
The following tree of reports are generated:
```bash
$ find coverage -maxdepth 2 -name index.html
coverage/core/index.html
coverage/transformations/index.html
coverage/paddle_frontend/index.html
coverage/tf_frontend/index.html
coverage/openvino/index.html
coverage/onnx_frontend/index.html
coverage/ir_frontend/index.html
coverage/low_precision_transformations/index.html
coverage/template_plugin/index.html
coverage/inference/index.html
coverage/frontend_common/index.html
```
## See also
* [OpenVINO™ README ](../../README.md )
* [Developer documentation ](../../docs/dev/index.md )