BloombergLP::bsls::FuzzTestPreconditionTracker

This utility class is used by the preprocessor macros to appropriately handle precondition violations that occur in different levels and components.

Synopsis

Declared in <bsls_fuzztest.h>

struct FuzzTestPreconditionTracker;

Static Member Functions

NameDescription
handleAssertViolation Throw a FuzzTestPreconditionException constructed from the specified violation if the assertion violation occurred after the first invocation of handlePreconditionsBegin but before the first invocation of handlePreconditionsEnd, and invoke the assertion handler returned by FuzzTestHandlerGuard::getOriginalAssertionHandler otherwise.
handleException Invoke the assertion/review handler returned by FuzzTestHandlerGuard::getOriginalAssertionHandler or FuzzTestHandlerGuard::getOriginalReviewHandler if the assertion/review violation wrapped by the specified exception was encountered in a component different from one supplied to initStaticState, and do nothing otherwise.
handlePreconditionsBegin Increment the assertion/review block depth level counter.
handlePreconditionsEnd Decrement the assertion/review block depth level counter and record that the first precondition block has ended if the depth level changed to 0. The behavior is undefined unless the depth level is positive.
handleReviewViolation Throw a FuzzTestPreconditionException constructed from the specified violation if the review violation occurred after the first invocation of handlePreconditionsBegin but before the first invocation of handlePreconditionsEnd, and invoke the assertion handler (not review handler) returned by FuzzTestHandlerGuard::getOriginalAssertionHandler otherwise.
initStaticState Store the specified fileName from the caller that invokes the top-level function under test (via BSLS_FUZZTEST_EVALUATE(X)), and set the state to reflect that any precondition begin macro encountered will be the first.