Provide a test facility for assertion macros.
More...
Go to the source code of this file.
Detailed Description
Define Documentation
#define BSLS_ASSERTTEST_SAFE_2_BUILD_FLAG false |
#define BSLS_ASSERTTEST_ASSERT_SAFE_ACTIVE_FLAG false |
#define BSLS_ASSERTTEST_ASSERT_ACTIVE_FLAG false |
#define BSLS_ASSERTTEST_ASSERT_OPT_ACTIVE_FLAG false |
#define BSLS_ASSERTTEST_IS_ACTIVE |
( |
|
TYPE |
) |
|
#define BSLS_ASSERTTEST_CAN_CHECK_LEVELS |
#define BSLS_ASSERTTEST_CHECK_LEVEL_ARG false |
#define BSLS_ASSERTTEST_BRUTE_FORCE_IMP |
( |
|
RESULT, |
|
|
|
LVL, |
|
|
|
EXPRESSION_UNDER_TEST | |
|
) |
| | |
Value:{ \
try { \
EXPRESSION_UNDER_TEST; \
\
ASSERT(BloombergLP::bsls::AssertTest::tryProbe(RESULT, LVL)); \
} \
catch (const BloombergLP::bsls::AssertTestException& e) { \
ASSERT(BloombergLP::bsls::AssertTest::catchProbe( \
RESULT, \
BSLS_ASSERTTEST_CHECK_LEVEL_ARG, \
LVL, \
e, \
__FILE__)); \
} \
}
#define BSLS_ASSERTTEST_VALIDATE_DISABLED_MACROS |
#define BSLS_ASSERTTEST_DISABLED_IMP |
( |
|
EXPRESSION_UNDER_TEST |
) |
if (false) { EXPRESSION_UNDER_TEST ; } else {} |
In non-exception enabled builds there is no way to safely use the ASSERT_FAIL macros as they require installing an assert-handler that throws a specific exception. ASSERT_FAIL negative tests require calling a method under test with out-of-contract values; running those tests without a functioning assert-handler would trigger undefined behavior with no protection so we choose to simple not execute the test calls that are designed to fail by expanding the test macros to an empty statement, { }
. All of the ASSERT_PASS macros are expanded however, as such tests call methods with in-contract values, and they may still be needed to guarantee stateful side-effects required by the test-driver.
#define BSLS_ASSERTTEST_ASSERT_SAFE_PASS |
( |
|
EXPRESSION_UNDER_TEST |
) |
{ EXPRESSION_UNDER_TEST; } |
#define BSLS_ASSERTTEST_ASSERT_PASS |
( |
|
EXPRESSION_UNDER_TEST |
) |
{ EXPRESSION_UNDER_TEST; } |
#define BSLS_ASSERTTEST_ASSERT_OPT_PASS |
( |
|
EXPRESSION_UNDER_TEST |
) |
{ EXPRESSION_UNDER_TEST; } |
#define BSLS_ASSERTTEST_ASSERT_INVOKE_PASS |
( |
|
EXPRESSION_UNDER_TEST |
) |
{ EXPRESSION_UNDER_TEST; } |
#define BSLS_ASSERTTEST_ASSERT_SAFE_PASS_RAW |
( |
|
EXPRESSION_UNDER_TEST |
) |
{ EXPRESSION_UNDER_TEST; } |
#define BSLS_ASSERTTEST_ASSERT_PASS_RAW |
( |
|
EXPRESSION_UNDER_TEST |
) |
{ EXPRESSION_UNDER_TEST; } |
#define BSLS_ASSERTTEST_ASSERT_OPT_PASS_RAW |
( |
|
EXPRESSION_UNDER_TEST |
) |
{ EXPRESSION_UNDER_TEST; } |
#define BSLS_ASSERTTEST_ASSERT_INVOKE_PASS_RAW |
( |
|
EXPRESSION_UNDER_TEST |
) |
{ EXPRESSION_UNDER_TEST; } |
#define BSLS_ASSERTTEST_ASSERT_SAFE_FAIL |
( |
|
EXPRESSION_UNDER_TEST |
) |
BSLS_ASSERTTEST_DISABLED_IMP(EXPRESSION_UNDER_TEST) |
#define BSLS_ASSERTTEST_ASSERT_FAIL |
( |
|
EXPRESSION_UNDER_TEST |
) |
BSLS_ASSERTTEST_DISABLED_IMP(EXPRESSION_UNDER_TEST) |
#define BSLS_ASSERTTEST_ASSERT_OPT_FAIL |
( |
|
EXPRESSION_UNDER_TEST |
) |
BSLS_ASSERTTEST_DISABLED_IMP(EXPRESSION_UNDER_TEST) |
#define BSLS_ASSERTTEST_ASSERT_SAFE_FAIL_RAW |
( |
|
EXPRESSION_UNDER_TEST |
) |
BSLS_ASSERTTEST_DISABLED_IMP(EXPRESSION_UNDER_TEST) |
#define BSLS_ASSERTTEST_ASSERT_FAIL_RAW |
( |
|
EXPRESSION_UNDER_TEST |
) |
BSLS_ASSERTTEST_DISABLED_IMP(EXPRESSION_UNDER_TEST) |
#define BSLS_ASSERTTEST_ASSERT_OPT_FAIL_RAW |
( |
|
EXPRESSION_UNDER_TEST |
) |
BSLS_ASSERTTEST_DISABLED_IMP(EXPRESSION_UNDER_TEST) |
#define BSLS_ASSERTTEST_ASSERT_INVOKE_FAIL |
( |
|
EXPRESSION_UNDER_TEST |
) |
BSLS_ASSERTTEST_DISABLED_IMP(EXPRESSION_UNDER_TEST) |
#define BSLS_ASSERTTEST_ASSERT_INVOKE_FAIL_RAW |
( |
|
EXPRESSION_UNDER_TEST |
) |
BSLS_ASSERTTEST_DISABLED_IMP(EXPRESSION_UNDER_TEST) |
#define BSLS_ASSERTTEST_RECURSIVELY_INCLUDED_TESTDRIVER_GUARD |