96 lines
3.4 KiB
ReStructuredText
96 lines
3.4 KiB
ReStructuredText
.. _codechecker:
|
|
|
|
CodeChecker support
|
|
###################
|
|
|
|
`CodeChecker <https://codechecker.readthedocs.io/>`__ is a static analysis infrastructure.
|
|
It executes analysis tools available on the build system, such as
|
|
`Clang-Tidy <http://clang.llvm.org/extra/clang-tidy/>`__,
|
|
`Clang Static Analyzer <http://clang-analyzer.llvm.org/>`__ and
|
|
`Cppcheck <https://cppcheck.sourceforge.io/>`__. Refer to the analyzer's websites for installation
|
|
instructions.
|
|
|
|
Installing CodeChecker
|
|
**********************
|
|
|
|
CodeChecker itself is a python package available on `pypi <https://pypi.org/project/codechecker/>`__.
|
|
|
|
.. code-block:: shell
|
|
|
|
pip install codechecker
|
|
|
|
Building with CodeChecker
|
|
*************************
|
|
|
|
To run CodeChecker, :ref:`west build <west-building>` should be
|
|
called with a ``-DZEPHYR_SCA_VARIANT=codechecker`` parameter, e.g.
|
|
|
|
.. code-block:: shell
|
|
|
|
west build -b mimxrt1064_evk samples/basic/blinky -- -DZEPHYR_SCA_VARIANT=codechecker
|
|
|
|
|
|
Configuring CodeChecker
|
|
***********************
|
|
|
|
CodeChecker uses different command steps, each with their respective configuration
|
|
parameters. The following table lists all these options.
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
|
|
* - Parameter
|
|
- Description
|
|
* - ``CODECHECKER_ANALYZE_JOBS``
|
|
- The number of threads to use in analysis. (default: <CPU count>)
|
|
* - ``CODECHECKER_ANALYZE_OPTS``
|
|
- Arguments passed to the ``analyze`` command directly. (e.g. ``--timeout;360``)
|
|
* - ``CODECHECKER_CLEANUP``
|
|
- Perform a cleanup after parsing/storing. This will remove all ``plist`` files.
|
|
* - ``CODECHECKER_CONFIG_FILE``
|
|
- A JSON or YAML file with configuration options passed to all commands.
|
|
* - ``CODECHECKER_EXPORT``
|
|
- A comma separated list of report types. Allowed types are:
|
|
``html,json,codeclimate,gerrit,baseline``.
|
|
* - ``CODECHECKER_NAME``
|
|
- The CodeChecker run metadata name. (default: ``zephyr``)
|
|
* - ``CODECHECKER_PARSE_EXIT_STATUS``
|
|
- By default, CodeChecker identified issues will not fail the build, set this option to fail
|
|
during analysis.
|
|
* - ``CODECHECKER_PARSE_OPTS``
|
|
- Arguments passed to the ``parse`` command directly. (e.g. ``--verbose;debug``)
|
|
* - ``CODECHECKER_PARSE_SKIP``
|
|
- Skip parsing the analysis, useful if you simply want to store the results.
|
|
* - ``CODECHECKER_STORE``
|
|
- Run the ``store`` command after analysis.
|
|
* - ``CODECHECKER_STORE_OPTS``
|
|
- Arguments passed to the ``store`` command directly. Implies ``CODECHECKER_STORE``.
|
|
(e.g. ``--url;localhost:8001/Default``)
|
|
* - ``CODECHECKER_STORE_TAG``
|
|
- Pass an identifier ``--tag`` to the ``store`` command.
|
|
* - ``CODECHECKER_TRIM_PATH_PREFIX``
|
|
- Trim the defined path from the analysis results, e.g. ``/home/user/zephyrproject``.
|
|
The value from ``west topdir`` is added by default.
|
|
|
|
These parameters can be passed on the command line, or be set as environment variables.
|
|
|
|
|
|
Running twister with CodeChecker
|
|
********************************
|
|
|
|
When running CodeChecker as part of ``twister`` some default options are set as following:
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
|
|
* - Parameter
|
|
- Value
|
|
* - ``CODECHECKER_ANALYZE_JOBS``
|
|
- ``1``
|
|
* - ``CODECHECKER_NAME``
|
|
- ``<board target>:<testsuite name>``
|
|
* - ``CODECHECKER_STORE_TAG``
|
|
- The value from ``git describe`` in the application source directory.
|
|
|
|
To override these values, set an environment variable or pass them as extra arguments.
|