|
BDE 4.39.x Production Release
|
DEPRECATED: Provide test utilities for components in bdl and above.
Provide test utilities for components in bdl and above.
!X!X!X!X!X!X!X!XThis component provides the standard print macros used in BDE-style test drivers (ASSERT, LOOP_ASSERT, ASSERTV, P, Q, L, and T) for components in the bdl package group and above.
This component also define a set of overloads for the insertion operator (<<) to support the streaming of test types defined in the bsltf package. This is required for test drivers in the bdl package group and above to print the objects of these types to bsl::cout.
Note that the bsltf package resides below bsl+bslhdrs, in which bsl::cout is defined; therefore, the components in bsltf cannot directly define the overloads of the insertion operator to support printing the test types. Instead, an alternate method supplied in bsls_bsltestutil is used for test drivers in the bsl package group.
This section illustrates intended use of this component.
First, we write a component to test, which provides a utility class:
Then, we can write a test driver for this component. We start by providing the standard BDE assert test macro:
Next, we define the standard print and LOOP_ASSERT macros, as aliases to the macros defined by this component:
Now, using the (standard) abbreviated macro names we have just defined, we write a test function for the static fortyTwo method, to be called from a test case in a test driver.
Finally, when testFortyTwo is called from a test case in verbose mode we observe the console output:
Suppose we want to print the value of an object of a test type defined the bsltf package using bsl::cout. This component supplies the necessary overloads of the insertion operator for this to be done directly.
First, include the header of this component:
Now, we construct a SimpleTestType object and stream its value to bsl::cout using the << operator:
Finally, we observe the following console output:
| #define BDLS_TESTUTIL_ASSERT | ( | X | ) | BSLIM_TESTUTIL_ASSERT(X) |
| #define BDLS_TESTUTIL_ASSERTV BSLIM_TESTUTIL_ASSERTV |
| #define BDLS_TESTUTIL_L_ BSLIM_TESTUTIL_L_ |
| #define BDLS_TESTUTIL_LOOP0_ASSERT BSLIM_TESTUTIL_ASSERT |
| #define BDLS_TESTUTIL_LOOP1_ASSERT BSLIM_TESTUTIL_LOOP_ASSERT |
| #define BDLS_TESTUTIL_LOOP2_ASSERT | ( | I, | |
| J, | |||
| X | |||
| ) | BSLIM_TESTUTIL_LOOP2_ASSERT(I,J,X) |
| #define BDLS_TESTUTIL_LOOP3_ASSERT | ( | I, | |
| J, | |||
| K, | |||
| X | |||
| ) | BSLIM_TESTUTIL_LOOP3_ASSERT(I,J,K,X) |
| #define BDLS_TESTUTIL_LOOP4_ASSERT | ( | I, | |
| J, | |||
| K, | |||
| L, | |||
| X | |||
| ) | BSLIM_TESTUTIL_LOOP4_ASSERT(I,J,K,L,X) |
| #define BDLS_TESTUTIL_LOOP5_ASSERT | ( | I, | |
| J, | |||
| K, | |||
| L, | |||
| M, | |||
| X | |||
| ) | BSLIM_TESTUTIL_LOOP5_ASSERT(I,J,K,L,M,X) |
| #define BDLS_TESTUTIL_LOOP6_ASSERT | ( | I, | |
| J, | |||
| K, | |||
| L, | |||
| M, | |||
| N, | |||
| X | |||
| ) | BSLIM_TESTUTIL_LOOP6_ASSERT(I,J,K,L,M,N,X) |
| #define BDLS_TESTUTIL_LOOP_ASSERT | ( | I, | |
| X | |||
| ) | BSLIM_TESTUTIL_LOOP_ASSERT(I,X) |
| #define BDLS_TESTUTIL_P | ( | X | ) | BSLIM_TESTUTIL_P(X) |
| #define BDLS_TESTUTIL_P_ | ( | X | ) | BSLIM_TESTUTIL_P_(X) |
| #define BDLS_TESTUTIL_Q | ( | X | ) | BSLIM_TESTUTIL_Q(X) |
| #define BDLS_TESTUTIL_T_ BSLIM_TESTUTIL_T_ |