Provided by: libzt-doc_0.3.1-4build1_all bug

NAME

       zt_claim — structure capturing unevaluated assertion

SYNOPSIS

       #include <zt.h>

       typedef struct zt_claim { ... } zt_claim;

       Type                              Member            Description
       struct zt_verifier *(*)(void)     make_verifier     Verifier factory
       zt_value[3]                       args              verifier arguments
       zt_location                       location          origin of the claim

DESCRIPTION

       zt_claim  binds  a  verifier factory function with concrete arguments. This allows the entire claim to be
       passed around and evaluated on demand. In case of failure the location where the claim was  made  can  be
       referenced for construction of error messages.

IMPLEMENTATION NOTES

       The  verification  system  is  comprised  of  the  following chain of cooperating elements. For example a
       trivial integer relationship assertion behaves as  follows.   ZT_CMP_INT(),  or  another  similar  macro,
       invokes  zt_cmp_int(),  providing  source code location as zt_location, and packaging specific types into
       common variant type zt_value.  The result is a zt_claim which is then passed to zt_assert() or zt_check()
       for evaluation.

       The roles of all the essential types and functions is summarized below.

          zt_value captures values expressed in a test case

          zt_claim transports up to three values and an opaque verifier

          zt_check() and zt_assert() validate the claim by instantiating zt_verifier.

          zt_verifier (private) wraps a verification function, including the arity and expected  kind  of  each
           argument.

          zt_arg_info  (private)  pairs  expected  argument  kind  with a customized error message used on kind
           mismatch.

          zt_verify_claim() (private) ensures verifier function arity and argument kind matches what is encoded
           in the claim and invokes the verifier function.

          The specific verifier function inspects the argument and performs  the  actual  verification  of  the
           desired property that the test is measuring.

          zt_test  (private)  keeps  track  of  test  outcome, provides a stream for writing error messages and
           assists in performing non-local exit.

SEE ALSO

       zt_assert(3), zt_check(3)

HISTORY

       zt_claim first appeared in libzt 0.1

BUGS

       Part of the API is private which prevents third party verification functions from being written. This  is
       done on purpose to to allow for some more experimentation before stabilizing the interface.

AUTHORS

       Zygmunt Krynicki <me@zygoon.pl>

libzt 0.3.1                                     January 12, 2020                                     zt_claim(3)