Manak  2.0.0
manak_macros.hpp File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _MANAK_AUTO_CASE_TIS(Type, Name, Library, Tol, Iter, SP)
 MANAK AUTO CASE MACRO. More...
 
#define _MANAK_AUTO_GROUP_CASE_TIS(Type, Name, Lib, Tol, Iter, SP)
 MANAK AUTO GROUP CASE. More...
 
#define _MANAK_CASE_TIS(Type, Name, Library, Function, Tol, Iter, SP)   ( new manak::Type(#Name, #Library, Function, Tol, Iter, SP) )
 
#define _MANAK_CREATE_GROUP_WITH_TEMPLATE_TIS(Type, Name, Lib, Fun, Tol, Iter, SP)   ( manak::CTManakCase<manak::Type>(Name, Lib, manak::utils::BindToObject(&decltype(GetType())::Fun, &Global()), Tol, Iter, SP) )
 MANAK CREATE GROUP WITH TEMPLATE MACROS. More...
 
#define _MANAK_CREATE_WITH_TEMPLATE_TIS(Type, Name, Library, Function, Tol, Iter, SP)   ( manak::CTManakCase<manak::Type>(#Name, #Library, Function, Tol, Iter, SP) )
 MANAK CREATE BENCHMARK WITH TEMPLATE MACRO. More...
 
#define _MANAK_GROUP_CASE_TIS(Type, Name, Library, Function, Tol, Iter, SP)   ( new manak::Type(Name, Library, manak::utils::BindToObject(&decltype(GetType())::Function, &Global()), Tol, Iter, SP) )
 
#define F_MANAK_ADD_GROUP(X)   MANAK_ADD_GROUP(X)
 MANAK AUTO GROUP MACROS. More...
 
#define F_MANAK_ADD_TO_GROUP(X)   MANAK_ADD_TO_GROUP(X)
 MANAK GROUP CASE MACROS. More...
 
#define F_MANAK_GROUP(X)   MANAK_GROUP(X)
 
#define GDOWN   void Manak_Group_TearDown
 
#define GINIT   void Manak_Group_Initialize
 
#define MANAK_ADD_CASE(bench)
 MANAK CASE MACROS. More...
 
#define MANAK_ADD_GROUP(Name,...)
 MANAK ADD GROUP MACROS. More...
 
#define MANAK_ADD_TO_GROUP(case)
 
#define MANAK_AUTO_GROUP()
 
#define MANAK_AUTO_GROUP_END()   MANAK_GROUP_END();
 
#define MANAK_AUTO_SUITE(Name)   static manak::RegisterManakSuite STRING_JOIN(X, STRING_JOIN(invoker, __LINE__))(#Name) \
 
#define MANAK_AUTO_SUITE_END()   static manak::DeRegisterManakSuite STRING_JOIN(destroy, __LINE__)
 
#define MANAK_AUTO_TEST(Name, X)   static const size_t Name = 0
 
#define MANAK_GROUP(Name)
 MANAK GROUP MACROS. More...
 
#define MANAK_GROUP_END()
 
#define MANAK_GROUP_FUNCTION(Name)   manak::utils::BindToObject(&decltype(GetType())::Name, &Global())
 
#define MANAK_SUITE(Name)   ( new manak::ManakSuite(#Name) )
 MANAK SUITE MACROS. More...
 

Macro Definition Documentation

#define _MANAK_AUTO_CASE_TIS (   Type,
  Name,
  Library,
  Tol,
  Iter,
  SP 
)
Value:
struct STRING_JOIN(Name ## _ ## Library, __LINE__) \
{ \
static void Run(); \
static manak::ManakCase* static_temp; \
}; \
manak::ManakCase* STRING_JOIN(Name ## _ ## Library, __LINE__)::static_temp = \
manak::ManakSuite::GetMasterSuite().GetCurrentSuite()-> \
AddCase(_MANAK_CASE_TIS(Type, \
Name, \
Library, \
STRING_JOIN(Name ## _ ## Library, __LINE__)::Run, \
Tol, \
Iter, \
SP)); \
void STRING_JOIN(Name ## _ ## Library, __LINE__)::Run()
#define _MANAK_CASE_TIS(Type, Name, Library, Function, Tol, Iter, SP)
#define STRING_JOIN(X, Y)
Joins given parameters.
Definition: macro_utils.hpp:18

MANAK AUTO CASE MACRO.

Definition at line 36 of file manak_macros.hpp.

#define _MANAK_AUTO_GROUP_CASE_TIS (   Type,
  Name,
  Lib,
  Tol,
  Iter,
  SP 
)
Value:
MANAK_ADD_TO_GROUP(_MANAK_GROUP_CASE_TIS(Type, Name, Lib, STRING_JOIN(manak_auto_fun, __LINE__), Tol, Iter, SP)); \
void STRING_JOIN(manak_auto_fun, __LINE__)()
#define _MANAK_GROUP_CASE_TIS(Type, Name, Library, Function, Tol, Iter, SP)
#define STRING_JOIN(X, Y)
Joins given parameters.
Definition: macro_utils.hpp:18
#define MANAK_ADD_TO_GROUP(case)

MANAK AUTO GROUP CASE.

Definition at line 194 of file manak_macros.hpp.

#define _MANAK_CASE_TIS (   Type,
  Name,
  Library,
  Function,
  Tol,
  Iter,
  SP 
)    ( new manak::Type(#Name, #Library, Function, Tol, Iter, SP) )

Definition at line 29 of file manak_macros.hpp.

#define _MANAK_CREATE_GROUP_WITH_TEMPLATE_TIS (   Type,
  Name,
  Lib,
  Fun,
  Tol,
  Iter,
  SP 
)    ( manak::CTManakCase<manak::Type>(Name, Lib, manak::utils::BindToObject(&decltype(GetType())::Fun, &Global()), Tol, Iter, SP) )

MANAK CREATE GROUP WITH TEMPLATE MACROS.

Definition at line 202 of file manak_macros.hpp.

#define _MANAK_CREATE_WITH_TEMPLATE_TIS (   Type,
  Name,
  Library,
  Function,
  Tol,
  Iter,
  SP 
)    ( manak::CTManakCase<manak::Type>(#Name, #Library, Function, Tol, Iter, SP) )

MANAK CREATE BENCHMARK WITH TEMPLATE MACRO.

Definition at line 57 of file manak_macros.hpp.

#define _MANAK_GROUP_CASE_TIS (   Type,
  Name,
  Library,
  Function,
  Tol,
  Iter,
  SP 
)    ( new manak::Type(Name, Library, manak::utils::BindToObject(&decltype(GetType())::Function, &Global()), Tol, Iter, SP) )

Definition at line 187 of file manak_macros.hpp.

#define F_MANAK_ADD_GROUP (   X)    MANAK_ADD_GROUP(X)

MANAK AUTO GROUP MACROS.

Definition at line 155 of file manak_macros.hpp.

#define F_MANAK_ADD_TO_GROUP (   X)    MANAK_ADD_TO_GROUP(X)

MANAK GROUP CASE MACROS.

Definition at line 170 of file manak_macros.hpp.

#define F_MANAK_GROUP (   X)    MANAK_GROUP(X)

Definition at line 156 of file manak_macros.hpp.

#define GDOWN   void Manak_Group_TearDown

Definition at line 134 of file manak_macros.hpp.

#define GINIT   void Manak_Group_Initialize

Definition at line 131 of file manak_macros.hpp.

#define MANAK_ADD_CASE (   bench)
Value:
class STRING_JOIN(unamed, STRING_JOIN(_, __LINE__)) \
{ \
static manak::ManakCase* static_temp; \
}; \
manak::ManakCase* \
STRING_JOIN(unamed, STRING_JOIN(_, __LINE__))::static_temp = \
manak::ManakSuite::GetMasterSuite().GetCurrentSuite()->AddCase(bench)
#define STRING_JOIN(X, Y)
Joins given parameters.
Definition: macro_utils.hpp:18

MANAK CASE MACROS.

Definition at line 20 of file manak_macros.hpp.

#define MANAK_ADD_GROUP (   Name,
  ... 
)
Value:
struct STRING_JOIN(Manak_unamed, __LINE__ ) \
{ \
static bool value; \
}; \
bool STRING_JOIN(Manak_unamed,__LINE__)::value = \
manak::ManakSuite::GetMasterSuite().GetCurrentSuite()-> \
AddGroup<MG ## _ ## Name>(__VA_ARGS__)
#define STRING_JOIN(X, Y)
Joins given parameters.
Definition: macro_utils.hpp:18

MANAK ADD GROUP MACROS.

Definition at line 142 of file manak_macros.hpp.

#define MANAK_ADD_TO_GROUP (   case)
Value:
void STRING_JOIN(group_caller, __LINE__)() \
{ \
Global().AddManakCase(case); \
} \
template<typename abcde> \
struct AddCase<__LINE__, abcde> \
{ \
AddCase() \
{ \
manak::utils::BindToObject(&decltype(GetType())::STRING_JOIN(group_caller, __LINE__), &Global())(); \
AddCase<__LINE__ + 1, abcde>(); \
} \
}
std::function< RType(Args...)> BindToObject(RType(C::*fun)(Args...), C *c)
#define STRING_JOIN(X, Y)
Joins given parameters.
Definition: macro_utils.hpp:18

Definition at line 172 of file manak_macros.hpp.

#define MANAK_AUTO_GROUP ( )
Value:
class STRING_JOIN(MG_unamed, __LINE__); \
F_MANAK_ADD_GROUP(STRING_JOIN(unamed, __LINE__)); \
F_MANAK_GROUP(STRING_JOIN(unamed, __LINE__));
#define F_MANAK_GROUP(X)
#define F_MANAK_ADD_GROUP(X)
MANAK AUTO GROUP MACROS.
#define STRING_JOIN(X, Y)
Joins given parameters.
Definition: macro_utils.hpp:18

Definition at line 158 of file manak_macros.hpp.

#define MANAK_AUTO_GROUP_END ( )    MANAK_GROUP_END();

Definition at line 163 of file manak_macros.hpp.

#define MANAK_AUTO_SUITE (   Name)    static manak::RegisterManakSuite STRING_JOIN(X, STRING_JOIN(invoker, __LINE__))(#Name) \

Definition at line 8 of file manak_macros.hpp.

#define MANAK_AUTO_SUITE_END ( )    static manak::DeRegisterManakSuite STRING_JOIN(destroy, __LINE__)

Definition at line 13 of file manak_macros.hpp.

#define MANAK_AUTO_TEST (   Name,
 
)    static const size_t Name = 0

Definition at line 11 of file manak_macros.hpp.

#define MANAK_GROUP (   Name)

MANAK GROUP MACROS.

Definition at line 64 of file manak_macros.hpp.

#define MANAK_GROUP_END ( )
Value:
template<typename ABCDE> \
struct AddCase<__LINE__, ABCDE> \
{}; \
};

Definition at line 125 of file manak_macros.hpp.

#define MANAK_GROUP_FUNCTION (   Name)    manak::utils::BindToObject(&decltype(GetType())::Name, &Global())

Definition at line 136 of file manak_macros.hpp.

#define MANAK_SUITE (   Name)    ( new manak::ManakSuite(#Name) )

MANAK SUITE MACROS.

Definition at line 5 of file manak_macros.hpp.