Proto commits in Snaipe/Criterion

These 13 commits are when the Protocol Buffers files have changed:

Commit:d258a8b
Author:Franklin "Snaipe" Mathieu
Committer:Franklin "Snaipe" Mathieu

asserts: Implemented new composable assertion API. This proposal implements assertions as composable sub-functions for the `cr_assert` and `cr_expect` macros. For instance, instead of having `cr_assert_eq(1, 2)`, the user can either use `cr_assert(eq(1, 2))` or `cr_assert(eq(i32, 1, 2))`. This has the advantage of simplifying the implementation of the assert macro, but also brings to the table an improved correctness by letting the user enforce the type of operands with a type tag, and the possibility to pretty-print and natively compare user types without c11 or compiler-specific constructs like _Generic or __builtin_types_compatible_p. This also lets us handle properly special comparison cases like ulp-based equality for IEEE floats. Fixes #165, #182.

The documentation is generated from this commit.

Commit:b61b022
Author:Franklin "Snaipe" Mathieu
Committer:Franklin "Snaipe" Mathieu

stats: Stop reporting passing assertions. Before this fix, assertions were always reported to the runner by the test, even when passing, for accuracy w.r.t statistics. This wasn't really a problem as prior to 2.3.x, criterion was using a very simple protocol to pass its data, which could handle passing extra data for correctness. However, since the I/O layer rewrite that introduced a more complex protocol format between the runner and the tests, passing repeatedly extra data for passed assertions incurred a huge slowdown for large number of assertions. In this situation, and because data from passed assertions is rarely used, we provide a mean to trade performance at the cost of correctness: We introduce a `full_stats` mode, which when activated reproduces the old behaviour, and a new behaviour in which tests stop reporting passing assertions, and only send an update to the count of passing assertions (without any detail attached). Users implementing custom reporting mechanisms in which having full access to the data of passing assertions will still be able to access it by using the `--full-stats` CLI switch. This fixes #172.

Commit:7aa0b1c
Author:Snaipe

runtime: Fixed timestamps not being reported. Fixes #116

Commit:7143118
Author:ailu
Committer:Snaipe

api: added cr_skip_test() Added cr_skip_test to skip a test during runtime. Also merged the old disable system with the new one. All skipped tests are printed by normal_log_post_suite(), so there is no need for a logger function for runtime skipepd tests. Fixes #131.

Commit:8169b70
Author:Snaipe

Merged verbosity & prefix fields into one severity field in the log message type

Commit:714f176
Author:Snaipe

Added test name in birth messages and made the subtest name optional in phase messages

Commit:c4f5e6b
Author:Snaipe

Implemented simple server mode

Commit:131a6a6
Author:Snaipe

Revamped the protocol for test nesting and phase grouping

Commit:43f7d83
Author:Snaipe

Started to integrate the new message pump into the runner

Commit:d9fa242
Author:Snaipe

Changed submessage union as oneof

Commit:74a72ee
Author:Snaipe

Updated protocol to latest

Commit:16b6046
Author:Snaipe

Simplified protocol

Commit:6efdc13
Author:Snaipe

Added basic criterion protocol definition