Lines Matching +full:- +full:- +full:coverage +full:- +full:tool
3 Generating coverage reports
6 With Zephyr, you can generate code coverage reports to analyze which parts of
15 Test coverage reports in embedded devices or QEMU
20 `GCC GCOV <gcov_>`_ is a test coverage program
21 used together with the GCC compiler to analyze and create test coverage reports
25 In Zephyr, gcov collects coverage profiling data in RAM (and not to a file
32 There are 2 parts to enable this feature. The first is to enable the coverage for the
34 code coverage with gcov is a function of RAM available. Therefore ensure that the
35 device has enough RAM when enabling the coverage for it. For example a small device
37 cases which consume more RAM will crash when coverage is enabled.
39 To enable the device for coverage, select :kconfig:option:`CONFIG_HAS_COVERAGE_SUPPORT`
42 To report the coverage for the particular test application set :kconfig:option:`CONFIG_COVERAGE`.
44 Steps to generate code coverage reports
47 These steps will produce an HTML coverage report for a single application.
51 .. zephyr-app-commands::
53 :gen-args: -DCONFIG_COVERAGE=y -DCONFIG_COVERAGE_DUMP=y
58 the emulator with :kbd:`Ctrl-A X` for this to complete after the coverage dump
61 .. code-block:: console
63 ninja -Cbuild run | tee log.log
67 .. code-block:: console
69 ninja -Cbuild run | tee log.log
74 $ python3 scripts/gen_gcov_files.py -i log.log
80 $ find $ZEPHYR_SDK_INSTALL_DIR -iregex ".*gcov"
84 $ mkdir -p gcov_report
88 …$ gcovr -r $ZEPHYR_BASE . --html -o gcov_report/coverage.html --html-details --gcov-executable <gc…
92 Coverage reports using the POSIX architecture
104 When you run your application, ``gcov`` coverage data will be dumped into the
108 .. zephyr-app-commands::
109 :zephyr-app: samples/hello_world
110 :gen-args: -DCONFIG_COVERAGE=y
111 :host-os: unix
116 .. code-block:: console
120 lcov --capture --directory ./ --output-file lcov.info -q --rc lcov_branch_coverage=1
121 …genhtml lcov.info --output-directory lcov_html -q --ignore-errors source --branch-coverage --highl…
130 Coverage reports using Twister
134 generate a coverage report from the tests which were executed.
135 You just need to invoke it with the ``--coverage`` command line option.
139 $ twister --coverage -p qemu_x86 -T tests/kernel
143 $ twister --coverage -p native_sim -T tests/bluetooth
145 which will produce ``twister-out/coverage/index.html`` report as well as
146 the coverage data collected by ``gcovr`` tool in ``twister-out/coverage.json``.
148 Other reports might be chosen with ``--coverage-tool`` and ``--coverage-formats``
154 $ twister --coverage -p unit_testing -T tests/unit
156 which produces a report in the same location as non-unit testing.
165 to check which gcov tool to use by default. The following are used as the
166 default for the Twister ``--gcov-tool`` argument default:
168 +-----------+-----------------------+
169 | Toolchain | ``--gcov-tool`` value |
170 +-----------+-----------------------+
172 +-----------+-----------------------+
173 | llvm | ``llvm-cov gcov`` |
174 +-----------+-----------------------+
176 +-----------+-----------------------+