summaryrefslogtreecommitdiffstats
path: root/tinyusb/test/vendor/ceedling/plugins/gcov/README.md
diff options
context:
space:
mode:
authorJoey Castillo <jose.castillo@gmail.com>2021-08-28 12:50:18 -0400
committerJoey Castillo <jose.castillo@gmail.com>2021-08-28 12:50:18 -0400
commit39a5c822a2a2e798e2e39ff8a98b7af84253026c (patch)
treefa157c98d3aea0d4f996e4415aa2a7ad1093ac05 /tinyusb/test/vendor/ceedling/plugins/gcov/README.md
parentc9e00b83bbdcb05058806d915ec4fff3cf4e596f (diff)
downloadSensor-Watch-39a5c822a2a2e798e2e39ff8a98b7af84253026c.tar.gz
Sensor-Watch-39a5c822a2a2e798e2e39ff8a98b7af84253026c.tar.bz2
Sensor-Watch-39a5c822a2a2e798e2e39ff8a98b7af84253026c.zip
add tinyusb
Diffstat (limited to 'tinyusb/test/vendor/ceedling/plugins/gcov/README.md')
-rwxr-xr-xtinyusb/test/vendor/ceedling/plugins/gcov/README.md101
1 files changed, 101 insertions, 0 deletions
diff --git a/tinyusb/test/vendor/ceedling/plugins/gcov/README.md b/tinyusb/test/vendor/ceedling/plugins/gcov/README.md
new file mode 100755
index 00000000..096ffa10
--- /dev/null
+++ b/tinyusb/test/vendor/ceedling/plugins/gcov/README.md
@@ -0,0 +1,101 @@
+ceedling-gcov
+=============
+
+# Plugin Overview
+
+Plugin for integrating GNU GCov code coverage tool into Ceedling projects.
+Currently only designed for the gcov command (like LCOV for example). In the
+future we could configure this to work with other code coverage tools.
+
+This plugin currently uses `gcovr` to generate HTML and/or XML reports as a
+utility. The normal gcov plugin _must_ be run first for this report to generate.
+
+## Installation
+
+Gcovr can be installed via pip like so:
+
+```
+pip install gcovr
+```
+
+## Configuration
+
+The gcov plugin supports configuration options via your `project.yml` provided
+by Ceedling.
+
+Generation of HTML reports may be enabled or disabled with the following
+config. Set to `true` to enable or set to `false` to disable.
+
+```
+:gcov:
+ :html_report: true
+```
+
+Generation of XML reports may be enabled or disabled with the following
+config. Set to `true` to enable or set to `false` to disable.
+
+```
+:gcov:
+ :xml_report: true
+```
+
+There are two types of gcovr HTML reports that can be configured in your
+`project.yml`. To create a basic HTML report, with only the overall file
+information, use the following config.
+
+```
+:gcov:
+ :html_report_type: basic
+```
+
+To create a detailed HTML report, with line by line breakdown of the
+coverage, use the following config.
+
+```
+:gcov:
+ :html_report_type: detailed
+```
+
+There are a number of options to control which files are considered part of
+the coverage report. Most often, we only care about coverage on our source code, and not
+on tests or automatically generated mocks, runners, etc. However, there are times
+where this isn't true... or there are times where we've moved ceedling's directory
+structure so that the project file isn't at the root of the project anymore. In these
+cases, you may need to tweak the following:
+
+```
+:gcov:
+ :report_root: "."
+ :report_exclude: "^build|^vendor|^test|^support"
+ :report_include: "^src"
+```
+
+One important note about html_report_root: gcovr will only take a single root folder, unlike
+Ceedling's ability to take as many as you like. So you will need to choose a folder which is
+a superset of ALL the folders you want, and then use the include or exclude options to set up
+patterns of files to pay attention to or ignore. It's not ideal, but it works.
+
+Finally, there are a number of settings which can be specified in order to adjust the
+default behaviors of gcov:
+
+```
+:gcov:
+ :html_medium_threshold: 75
+ :html_high_threshold: 90
+ :fail_under_line: 30
+ :fail_under_branch: 30
+```
+
+These HTML and XML reports will be found in `build/artifacts/gcov`.
+
+## Example Usage
+
+```
+ceedling gcov:all utils:gcov
+```
+
+## To-Do list
+
+- Generate overall report (combined statistics from all files with coverage)
+- Generate coverage output files
+- Easier option override for better customisation