CMocka
===
###### tags: `III` `DevOps` `Testing` `CI/CD`
- [The CMocka APIs](https://api.cmocka.org/group__cmocka.html)
- [Enabling XML Output](https://embeddedartistry.com/blog/2017/10/16/cmocka-enabling-xml-output/)
## JUnit XML Report
* A report can contain 1 or more test suite.
* Each test suite also contains 1 or more test case.
* Each test case will either contain a skipped, failure or error node if the test did not pass. If the test case has passed, then it will not contain any nodes.
```
<testsuites> => the aggregated result of all junit testfiles
<testsuite> => the output from a single TestSuite
<properties> => the defined properties at test execution
<property> => name/value pair for a single property
...
</properties>
<error></error> => optional information, in place of a test case - normally if the tests in the suite could not be found etc.
<testcase> => the results from executing a test method
<system-out> => data written to System.out during the test run
<system-err> => data written to System.err during the test run
<skipped/> => test was skipped
<failure> => test failed
<error> => test encountered an error
</testcase>
...
</testsuite>
...
</testsuites>
```
:::info
An **errored test** is one that had an unanticipated problem. e.g., an unchecked throwable; or a problem with the implementation of the test.
A **failure** is a test which the code has explicitly failed by using the mechanisms for that purpose. e.g., via an assertEquals.
:::