Next: , Previous: , Up: conditions   [Contents][Index]


8.2 Signalling test success

The success exceptional–condition object–type can be used to signal success in a test execution; it is not the only way a test can succeed, it is just an option that can be useful in some special cases. 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_success(cce_condition(L))) {
    CCTESTS_PC(cctests_condition_success_t, C, cce_condition(L));
    do_something_with(C);
    cce_run_body_handlers_final(L);
  } else {
    cce_run_catch_handlers_final(L);
  }
} else {
  do_something(L);
  cce_run_body_handlers(L);
}
Struct Typedef: cctests_descriptor_success_t

Type of data structure representing the exceptional–condition descriptor. It has the following public fields:

cce_descriptor_t descriptor

The condition descriptor’s base values.

The parent of this type descriptor is the one referenced by cctests_descriptor_base_ptr, Base condition object.

Struct Typedef: cctests_condition_success_t

Type of data structure representing the condition object. It has the following public fields:

cctests_condition_base_t base

The condition object’s base values.

Function: void cce_descriptor_set_parent_to(cctests_condition_success_t) (cce_descriptor_t * const D)

Set the parent of the descriptor referenced by D to the descriptor of the exceptional–condition object–type cctests_condition_success_t.

Function: void cctests_condition_init_success (cctests_condition_success_t * C)

Initialisation function for the condition object. This function is meant to be called from the initialisation function of sub–types of cctests_condition_success_t.

Function: cce_condition_t const * cctests_condition_new_success (void)

Return a pointer to exceptional–condition object of type cctests_condition_success_t made opaque in the type cce_condition_t.

Function: bool cctests_condition_is_success (cce_condition_t const * C)

Return true if C if of type cctests_condition_success_t; otherwise return false.

Sub–typing example

To define a sub–type of cctests_condition_success_t we can copy the code in the files:

condition-success-subtype.c
condition-success-subtype-headear.h
condition-success-subtype-body.c

under the tests directory of the source distribution; the code defines a new condition–object type my_condition_success_subtype_t.


Next: , Previous: , Up: conditions   [Contents][Index]

This document describes version 0.4.1-devel.1 of CCTests.