[#BloombergLP-bsls-FuzzTestPreconditionTracker] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bsls.adoc[bsls]::FuzzTestPreconditionTracker :relfileprefix: ../../ :mrdocs: 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>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct FuzzTestPreconditionTracker; ---- == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/FuzzTestPreconditionTracker/handleAssertViolation.adoc[`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. | xref:BloombergLP/bsls/FuzzTestPreconditionTracker/handleException.adoc[`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. | xref:BloombergLP/bsls/FuzzTestPreconditionTracker/handlePreconditionsBegin.adoc[`handlePreconditionsBegin`] | Increment the assertion/review block depth level counter. | xref:BloombergLP/bsls/FuzzTestPreconditionTracker/handlePreconditionsEnd.adoc[`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. | xref:BloombergLP/bsls/FuzzTestPreconditionTracker/handleReviewViolation.adoc[`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. | xref:BloombergLP/bsls/FuzzTestPreconditionTracker/initStaticState.adoc[`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. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#