Quick Links:

bal | bbl | bdl | bsl

Classes | Namespaces | Defines | Functions

bsltf_templatetestfacility.h File Reference

Provide utilities to help with testing templates. More...

Go to the source code of this file.

Classes

class  bsltf::TemplateTestFacility_StubClass
class  bsltf::TemplateTestFacility_CompareHelper
struct  bsltf::TemplateTestFacility

Namespaces

namespace  bsltf

Defines

#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_PRIMITIVE
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_USER_DEFINED
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_REGULAR
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_AWKWARD
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_ALL
#define BSLTF_TEMPLATETESTFACILITY_NUM_ARGS_IMPL(X20, X19, X18, X17, X16,X15, X14, X13, X12, X11,X10,X9,X8,X7,X6,X5,X4,X3,X2,X1,N,...)   N
#define BSLTF_TEMPLATETESTFACILITY_EXPAND(X)   X
#define BSLTF_TEMPLATETESTFACILITY_NUM_ARGS(...)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL1(C, M, T1)   C<T1>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL2(C, M, T1, T2)   C<T1>::M(); C<T2>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL3(C, M, T1, T2, T3)   C<T1>::M(); C<T2>::M(); C<T3>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL4(C, M, T1, T2, T3, T4)   C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL5(C, M, T1, T2, T3, T4,T5)   C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL6(C, M, T1, T2, T3, T4,T5, T6)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL7(C, M, T1, T2, T3, T4,T5, T6, T7)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL8(C, M, T1, T2, T3, T4,T5, T6, T7, T8)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL9(C, M, T1, T2, T3, T4,T5, T6, T7, T8, T9)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL10(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL11(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL12(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL13(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12, T13)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL14(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12, T13,T14)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL15(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12, T13,T14, T15)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL16(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12, T13,T14, T15, T16)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL17(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12, T13,T14, T15, T16, T17)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL18(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12, T13,T14, T15, T16, T17,T18)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL19(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12, T13,T14, T15, T16, T17,T18, T19)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL20(C, M, T1, T2, T3, T4, T5, T6, T7, T8, T9,T10, T11, T12, T13,T14, T15, T16, T17,T18, T19, T20)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL(C, M, N,...)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_(C, M, N,...)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE(CLASS, METHOD,...)
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_DEFINE_DBG_PRINT(TYPE)
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_DEFINE_DBG_PRINTS()
#define BSLTF_TEMPLATETESTFACILITY_COMPARE_EQUAL(FIRST_ARGUMENT,SECOND_ARGUMENT)
#define BSLTF_TEMPLATETESTFACILITY_COMPARE_NOT_EQUAL(FIRST_ARGUMENT,SECOND_ARGUMENT)

Functions

template<class TYPE >
bsltf::MoveState::Enum bsltf::getMovedFrom (const TYPE &object)
template<class TYPE >
bsltf::MoveState::Enum bsltf::getMovedInto (const TYPE &object)
template<class TYPE >
void bsltf::setMovedInto (TYPE *object, bsltf::MoveState::Enum value)
void bsltf::debugprint (const AllocTestType &obj)
void bsltf::debugprint (const NonOptionalAllocTestType &obj)
void bsltf::debugprint (const AllocBitwiseMoveableTestType &obj)
void bsltf::debugprint (const AllocEmplacableTestType &obj)
void bsltf::debugprint (const BitwiseCopyableTestType &obj)
void bsltf::debugprint (const BitwiseMoveableTestType &obj)
void bsltf::debugprint (const EmplacableTestType &obj)
void bsltf::debugprint (const EnumeratedTestType::Enum &obj)
void bsltf::debugprint (const MovableAllocTestType &obj)
void bsltf::debugprint (const MovableTestType &obj)
void bsltf::debugprint (const MoveOnlyAllocTestType &obj)
void bsltf::debugprint (const NonTypicalOverloadsTestType &obj)
void bsltf::debugprint (const NonAssignableTestType &obj)
void bsltf::debugprint (const NonCopyConstructibleTestType &obj)
void bsltf::debugprint (const NonDefaultConstructibleTestType &obj)
void bsltf::debugprint (const NonEqualComparableTestType &obj)
void bsltf::debugprint (const SimpleTestType &obj)
template<class ALLOC >
void bsltf::debugprint (const StdAllocTestType< ALLOC > &obj)
void bsltf::debugprint (const UnionTestType &obj)
void bsltf::debugprint (const WellBehavedMoveOnlyAllocTestType &obj)

Detailed Description


Define Documentation

#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_PRIMITIVE
Value:
signed char,                                                          \
        size_t,                                                               \
        const char *,                                                         \
        bsltf::TemplateTestFacility::ObjectPtr,                               \
        bsltf::TemplateTestFacility::FunctionPtr,                             \
        bsltf::TemplateTestFacility::MethodPtr
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_USER_DEFINED
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_REGULAR
Value:
BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_PRIMITIVE,                      \
        BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_USER_DEFINED
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_AWKWARD
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_ALL
Value:
BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_REGULAR,                        \
        BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_AWKWARD
#define BSLTF_TEMPLATETESTFACILITY_NUM_ARGS_IMPL (   X20,
  X19,
  X18,
  X17,
  X16,
  X15,
  X14,
  X13,
  X12,
  X11,
  X10,
  X9,
  X8,
  X7,
  X6,
  X5,
  X4,
  X3,
  X2,
  X1,
  N,
  ... 
)    N
#define BSLTF_TEMPLATETESTFACILITY_EXPAND (   X  )     X
#define BSLTF_TEMPLATETESTFACILITY_NUM_ARGS (   ...  ) 
Value:
BSLTF_TEMPLATETESTFACILITY_EXPAND(                                    \
        BSLTF_TEMPLATETESTFACILITY_NUM_ARGS_IMPL(__VA_ARGS__,                 \
                                                 20, 19, 18, 17, 16, 15, 14,  \
                                                 13, 12, 11, 10,  9,  8,  7,  \
                                                 6, 5, 4, 3, 2, 1, 0))
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL1 (   C,
  M,
  T1 
)    C<T1>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL2 (   C,
  M,
  T1,
  T2 
)    C<T1>::M(); C<T2>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL3 (   C,
  M,
  T1,
  T2,
  T3 
)    C<T1>::M(); C<T2>::M(); C<T3>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL4 (   C,
  M,
  T1,
  T2,
  T3,
  T4 
)    C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL5 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5 
)    C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL6 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL7 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL8 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL9 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL10 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL11 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL12 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL13 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M(); C<T13>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL14 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13,
  T14 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M(); C<T13>::M(); C<T14>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL15 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13,
  T14,
  T15 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M(); C<T13>::M(); C<T14>::M(); C<T15>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL16 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13,
  T14,
  T15,
  T16 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M(); C<T13>::M(); C<T14>::M(); C<T15>::M();      \
        C<T16>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL17 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13,
  T14,
  T15,
  T16,
  T17 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M(); C<T13>::M(); C<T14>::M(); C<T15>::M();      \
        C<T16>::M(); C<T17>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL18 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13,
  T14,
  T15,
  T16,
  T17,
  T18 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M(); C<T13>::M(); C<T14>::M(); C<T15>::M();      \
        C<T16>::M(); C<T17>::M(); C<T18>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL19 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13,
  T14,
  T15,
  T16,
  T17,
  T18,
  T19 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M(); C<T13>::M(); C<T14>::M(); C<T15>::M();      \
        C<T16>::M(); C<T17>::M(); C<T18>::M(); C<T19>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL20 (   C,
  M,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13,
  T14,
  T15,
  T16,
  T17,
  T18,
  T19,
  T20 
)
Value:
C<T1>::M(); C<T2>::M(); C<T3>::M(); C<T4>::M(); C<T5>::M();           \
        C<T6>::M(); C<T7>::M(); C<T8>::M(); C<T9>::M(); C<T10>::M();          \
        C<T11>::M(); C<T12>::M(); C<T13>::M(); C<T14>::M(); C<T15>::M();      \
        C<T16>::M(); C<T17>::M(); C<T18>::M(); C<T19>::M(); C<T20>::M();
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_IMPL (   C,
  M,
  N,
  ... 
)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_ (   C,
  M,
  N,
  ... 
)
#define BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE (   CLASS,
  METHOD,
  ... 
)
Value:
BSLTF_TEMPLATETESTFACILITY_RUN_EACH_TYPE_(                            \
                            CLASS,                                            \
                            METHOD,                                           \
                            BSLTF_TEMPLATETESTFACILITY_NUM_ARGS(__VA_ARGS__), \
                            __VA_ARGS__)                                      \
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_DEFINE_DBG_PRINT (   TYPE  ) 
Value:
inline void dbg_print(const TYPE& val)                                \
       { printf("%d", bsltf::TemplateTestFacility::getIdentifier<TYPE>(val)); }
#define BSLTF_TEMPLATETESTFACILITY_TEST_TYPES_DEFINE_DBG_PRINTS (  ) 
#define BSLTF_TEMPLATETESTFACILITY_COMPARE_EQUAL (   FIRST_ARGUMENT,
  SECOND_ARGUMENT 
)
Value:
::BloombergLP::bsltf::TemplateTestFacility_CompareHelper::            \
                                    areEqual(FIRST_ARGUMENT, SECOND_ARGUMENT)
#define BSLTF_TEMPLATETESTFACILITY_COMPARE_NOT_EQUAL (   FIRST_ARGUMENT,
  SECOND_ARGUMENT 
)
Value:
::BloombergLP::bsltf::TemplateTestFacility_CompareHelper::            \
                                 areNotEqual(FIRST_ARGUMENT, SECOND_ARGUMENT)