Next: conditions assertion expected, Up: conditions assertion [Contents][Index]
The assertion exceptional–condition object–type is used by CCTests to signal failure
in an assertion verification, for example by cctests_assertion(). We can instantiate this
type and also derive new types from it. To catch this exceptional condition we can do:
cce_location_t L[1];
if (cce_location(L)) {
if (cctests_condition_is_assertion(cce_condition(L))) {
CCTESTS_PC(cctests_condition_assertion_t, C, cce_condition(L));
do_something_with(C);
}
cce_run_catch_handlers_final(L);
} else {
do_something(L);
cce_run_body_handlers(L);
}
Type of data structure representing the exceptional–condition descriptor. It has the following public fields:
cce_descriptor_t descriptorThe condition descriptor’s base values.
The parent of this type descriptor is the one referenced by cctests_descriptor_failure_ptr,
Signalling test failure.
Type of data structure representing the exceptional–condition object. It has the following public fields:
cctests_condition_failure_t failureThe condition object’s base values.
char const * exprPointer to a statically allocated ASCIIZ string representing the failed assertion’s expression.
char const * filenamePointer to a statically allocated ASCIIZ string representing the pathname of the source file in
which the failed assertion is located. This value is meant to be generated with the preprocessor
macro __FILE__.
char const * funcnamePointer to a statically allocated ASCIIZ string representing the name of the function in which
the failed assertion is located. This value is meant to be generated with the preprocessor macro
__func__.
int linenumThe line number in the source file in which the failed assertion is located. This value is meant to
be generated with the preprocessor macro __LINE__.
char const * dynamic_stringThis is either NULL or a pointer to an ASCIIZ message string allocated using the standard
allocator.
Set the parent of the descriptor referenced by D to the descriptor of the
exceptional–condition object–type cctests_condition_assertion_t.
Initialisation function for the condition object. This function is meant to be called from the
initialisation function of sub–types of cctests_condition_assertion_t.
The strings referenced by expr, filename, funcname are not duplicated.
The argument message is either NULL or a pointer to an ASCIIZ message string allocated
using the standard allocator; the ownership of this string is transferred to the
exceptional–condition object.
Return a pointer to exceptional condition object. If an error occurs building the instance: raise an exception by performing a non–local exit to L.
The strings referenced by expr, filename, funcname are not duplicated.
The argument message is either NULL or a pointer to an ASCIIZ message string allocated
using the standard allocator; the ownership of this string is transferred to the
exceptional–condition object.
Return true if C if of type cctests_condition_assertion_t; otherwise
return false.
To define a sub–type of cctests_condition_assertion_t we can copy the code in the files:
condition-assertion-subtype.c condition-assertion-subtype-headear.h condition-assertion-subtype-body.c
under the tests directory of the source distribution; the code defines a new
condition–object type my_condition_assertion_subtype_t.
Next: conditions assertion expected, Up: conditions assertion [Contents][Index]
This document describes version 0.4.1-devel.1 of CCTests.