sst-waveshapers
Waveshapers submodule for the Surge Synthesizer
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
catch2.hpp File Reference

Classes

struct  Catch_global_namespace_dummy
 
struct  CaseSensitive
 
class  NonCopyable
 
struct  SourceLineInfo
 
struct  StreamEndStop
 
struct  RegistrarForTagAliases
 
struct  ITestInvoker
 
struct  ITestCaseRegistry
 
class  StringRef
 A non-owning string class (similar to the forthcoming std::string_view) Note that, because a StringRef may be a substring of another string, it may not be null terminated. More...
 
struct  always_false< T >
 
struct  true_given< typename >
 
struct  is_callable_tester
 
struct  is_callable< Fun(Args...)>
 
class  TestInvokerAsMethod< C >
 
struct  NameAndTags
 
struct  AutoReg
 
struct  ResultWas
 
struct  ResultDisposition
 
struct  AssertionInfo
 
struct  IStream
 
class  ReusableStringStream
 
struct  EnumInfo
 
struct  IMutableEnumValuesRegistry
 
class  IsStreamInsertable< T >
 
struct  StringMaker< T, typename >
 
struct  StringMaker< std::string >
 
struct  StringMaker< char const * >
 
struct  StringMaker< char * >
 
struct  StringMaker< std::wstring >
 
struct  StringMaker< wchar_t const * >
 
struct  StringMaker< wchar_t * >
 
struct  StringMaker< char[SZ]>
 
struct  StringMaker< signed char[SZ]>
 
struct  StringMaker< unsigned char[SZ]>
 
struct  StringMaker< int >
 
struct  StringMaker< long >
 
struct  StringMaker< long long >
 
struct  StringMaker< unsigned int >
 
struct  StringMaker< unsigned long >
 
struct  StringMaker< unsigned long long >
 
struct  StringMaker< bool >
 
struct  StringMaker< char >
 
struct  StringMaker< signed char >
 
struct  StringMaker< unsigned char >
 
struct  StringMaker< std::nullptr_t >
 
struct  StringMaker< float >
 
struct  StringMaker< double >
 
struct  StringMaker< T * >
 
struct  StringMaker< R C::* >
 
struct  is_range< T >
 
struct  StringMaker< R, typename std::enable_if< is_range< R >::value &&!::Catch::Detail::IsStreamInsertable< R >::value >::type >
 
struct  StringMaker< T[SZ]>
 
struct  ITransientExpression
 
class  BinaryExpr< LhsT, RhsT >
 
class  UnaryExpr< LhsT >
 
class  ExprLhs< LhsT >
 
struct  Decomposer
 
struct  IResultCapture
 
struct  TestFailureException
 
class  LazyExpression
 
struct  AssertionReaction
 
class  AssertionHandler
 
struct  MessageInfo
 
struct  MessageStream
 
struct  MessageBuilder
 
class  ScopedMessage
 
class  Capturer
 
struct  Counts
 
struct  Totals
 
struct  SectionInfo
 
struct  SectionEndInfo
 
class  Timer
 
class  Section
 
struct  IRegistryHub
 
struct  IMutableRegistryHub
 
struct  IExceptionTranslator
 
struct  IExceptionTranslatorRegistry
 
class  ExceptionTranslatorRegistrar
 
class  Approx
 
struct  StringMaker< Catch::Detail::Approx >
 
struct  pluralise
 
class  MatcherUntypedBase
 
struct  MatcherMethod< ObjectT >
 
struct  MatcherBase< T >
 
struct  MatchAllOf< ArgT >
 
struct  MatchAnyOf< ArgT >
 
struct  MatchNotOf< ArgT >
 
class  ExceptionMessageMatcher
 
struct  WithinAbsMatcher
 
struct  WithinUlpsMatcher
 
struct  WithinRelMatcher
 
class  PredicateMatcher< T >
 
struct  CasedString
 
struct  StringMatcherBase
 
struct  EqualsMatcher
 
struct  ContainsMatcher
 
struct  StartsWithMatcher
 
struct  EndsWithMatcher
 
struct  RegexMatcher
 
struct  ContainsElementMatcher< T, Alloc >
 
struct  ContainsMatcher< T, AllocComp, AllocMatch >
 
struct  EqualsMatcher< T, AllocComp, AllocMatch >
 
struct  ApproxMatcher< T, AllocComp, AllocMatch >
 
struct  UnorderedEqualsMatcher< T, AllocComp, AllocMatch >
 
class  MatchExpr< ArgT, MatcherT >
 
class  GeneratorUntypedBase
 
struct  IGeneratorTracker
 
class  GeneratorException
 
struct  IGenerator< T >
 
class  SingleValueGenerator< T >
 
class  FixedValuesGenerator< T >
 
class  GeneratorWrapper< T >
 
class  Generators< T >
 
struct  as< T >
 
class  TakeGenerator< T >
 
class  FilterGenerator< T, Predicate >
 
class  RepeatGenerator< T >
 
class  MapGenerator< T, U, Func >
 
class  ChunkGenerator< T >
 
struct  IContext
 
struct  IMutableContext
 
class  Option< T >
 
struct  WarnAbout
 
struct  ShowDurations
 
struct  RunTests
 
struct  UseColour
 
struct  WaitForKeypress
 
struct  IConfig
 
class  SimplePcg32
 
class  RandomFloatingGenerator< Float >
 
class  RandomIntegerGenerator< Integer >
 
class  RangeGenerator< T >
 
class  IteratorGenerator< T >
 
struct  TestCaseInfo
 
class  TestCase
 
struct  IRunner
 

Namespaces

 Catch
 
 mpl_
 
 Catch::Detail
 
 Catch::detail
 
 Catch::literals
 
 Catch::Matchers
 
 Catch::Matchers::Impl
 
 Catch::Matchers::Exception
 
 Catch::Matchers::Floating
 
 Catch::Matchers::Generic
 
 Catch::Matchers::Generic::Detail
 
 Catch::Matchers::StdString
 
 Catch::Matchers::Vector
 
 Catch::Generators
 
 Catch::Generators::pf
 

Macros

#define CATCH_VERSION_MAJOR   2
 
#define CATCH_VERSION_MINOR   13
 
#define CATCH_VERSION_PATCH   7
 
#define CATCH_PLATFORM_WINDOWS
 
#define CATCH_INTERNAL_CONFIG_COUNTER
 
#define CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER
 
#define CATCH_CONFIG_COUNTER
 
#define CATCH_CONFIG_WCHAR
 
#define CATCH_CONFIG_CPP11_TO_STRING
 
#define CATCH_CONFIG_DISABLE_EXCEPTIONS
 
#define CATCH_CONFIG_GLOBAL_NEXTAFTER
 
#define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION
 
#define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
 
#define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
 
#define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS
 
#define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS
 
#define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS
 
#define CATCH_INTERNAL_IGNORE_BUT_WARN(...)
 
#define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS
 
#define CATCH_TRY   if ((true))
 
#define CATCH_CATCH_ALL   if ((false))
 
#define CATCH_CATCH_ANON(type)   if ((false))
 
#define INTERNAL_CATCH_UNIQUE_NAME_LINE2(name, line)   name##line
 
#define INTERNAL_CATCH_UNIQUE_NAME_LINE(name, line)   INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
 
#define INTERNAL_CATCH_UNIQUE_NAME(name)   INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
 
#define CATCH_INTERNAL_LINEINFO    ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
 
#define CATCH_REGISTER_TAG_ALIAS(alias, spec)
 
#define CATCH_RECURSION_LEVEL0(...)   __VA_ARGS__
 
#define CATCH_RECURSION_LEVEL1(...)   CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__)))
 
#define CATCH_RECURSION_LEVEL2(...)   CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__)))
 
#define CATCH_RECURSION_LEVEL3(...)   CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__)))
 
#define CATCH_RECURSION_LEVEL4(...)   CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__)))
 
#define CATCH_RECURSION_LEVEL5(...)   CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__)))
 
#define CATCH_RECURSE(...)   CATCH_RECURSION_LEVEL5(__VA_ARGS__)
 
#define CATCH_REC_END(...)
 
#define CATCH_REC_OUT
 
#define CATCH_EMPTY()
 
#define CATCH_DEFER(id)   id CATCH_EMPTY()
 
#define CATCH_REC_GET_END2()   0, CATCH_REC_END
 
#define CATCH_REC_GET_END1(...)   CATCH_REC_GET_END2
 
#define CATCH_REC_GET_END(...)   CATCH_REC_GET_END1
 
#define CATCH_REC_NEXT0(test, next, ...)   next CATCH_REC_OUT
 
#define CATCH_REC_NEXT1(test, next)   CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0)
 
#define CATCH_REC_NEXT(test, next)   CATCH_REC_NEXT1(CATCH_REC_GET_END test, next)
 
#define CATCH_REC_LIST0(f, x, peek, ...)   , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ )
 
#define CATCH_REC_LIST1(f, x, peek, ...)   , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ )
 
#define CATCH_REC_LIST2(f, x, peek, ...)   f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ )
 
#define CATCH_REC_LIST0_UD(f, userdata, x, peek, ...)   , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ )
 
#define CATCH_REC_LIST1_UD(f, userdata, x, peek, ...)   , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0_UD) ) ( f, userdata, peek, __VA_ARGS__ )
 
#define CATCH_REC_LIST2_UD(f, userdata, x, peek, ...)   f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ )
 
#define CATCH_REC_LIST_UD(f, userdata, ...)   CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define CATCH_REC_LIST(f, ...)   CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define INTERNAL_CATCH_EXPAND1(param)   INTERNAL_CATCH_EXPAND2(param)
 
#define INTERNAL_CATCH_EXPAND2(...)   INTERNAL_CATCH_NO## __VA_ARGS__
 
#define INTERNAL_CATCH_DEF(...)   INTERNAL_CATCH_DEF __VA_ARGS__
 
#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF
 
#define INTERNAL_CATCH_STRINGIZE(...)   INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__)
 
#define INTERNAL_CATCH_STRINGIZE2(...)   #__VA_ARGS__
 
#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)   INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param))
 
#define INTERNAL_CATCH_MAKE_NAMESPACE2(...)   ns_##__VA_ARGS__
 
#define INTERNAL_CATCH_MAKE_NAMESPACE(name)   INTERNAL_CATCH_MAKE_NAMESPACE2(name)
 
#define INTERNAL_CATCH_REMOVE_PARENS(...)   INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__)
 
#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...)   decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS_GEN(__VA_ARGS__)>())
 
#define INTERNAL_CATCH_MAKE_TYPE_LIST(...)   INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))
 
#define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)    CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__)
 
#define INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0)   INTERNAL_CATCH_REMOVE_PARENS(_0)
 
#define INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1)
 
#define INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2)
 
#define INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3)
 
#define INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4)
 
#define INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5)
 
#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _3, _4, _5, _6)
 
#define INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7)
 
#define INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8)
 
#define INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9)
 
#define INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10)   INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10)
 
#define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...)   N
 
#define INTERNAL_CATCH_TYPE_GEN
 
#define INTERNAL_CATCH_NTTP_1(signature, ...)
 
#define INTERNAL_CATCH_DECLARE_SIG_TEST0(TestName)
 
#define INTERNAL_CATCH_DECLARE_SIG_TEST1(TestName, signature)
 
#define INTERNAL_CATCH_DECLARE_SIG_TEST_X(TestName, signature, ...)
 
#define INTERNAL_CATCH_DEFINE_SIG_TEST0(TestName)
 
#define INTERNAL_CATCH_DEFINE_SIG_TEST1(TestName, signature)
 
#define INTERNAL_CATCH_DEFINE_SIG_TEST_X(TestName, signature, ...)
 
#define INTERNAL_CATCH_NTTP_REGISTER0(TestFunc, signature)
 
#define INTERNAL_CATCH_NTTP_REGISTER(TestFunc, signature, ...)
 
#define INTERNAL_CATCH_NTTP_REGISTER_METHOD0(TestName, signature, ...)
 
#define INTERNAL_CATCH_NTTP_REGISTER_METHOD(TestName, signature, ...)
 
#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0(TestName, ClassName)
 
#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1(TestName, ClassName, signature)
 
#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X(TestName, ClassName, signature, ...)
 
#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0(TestName)
 
#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1(TestName, signature)
 
#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X(TestName, signature, ...)
 
#define INTERNAL_CATCH_NTTP_0
 
#define INTERNAL_CATCH_NTTP_GEN(...)   INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__),INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_0)
 
#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)   INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0)(TestName, __VA_ARGS__)
 
#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)   INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0)(TestName, ClassName, __VA_ARGS__)
 
#define INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)   INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD0, INTERNAL_CATCH_NTTP_REGISTER_METHOD0)(TestName, __VA_ARGS__)
 
#define INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)   INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER0, INTERNAL_CATCH_NTTP_REGISTER0)(TestFunc, __VA_ARGS__)
 
#define INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)   INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST1, INTERNAL_CATCH_DEFINE_SIG_TEST0)(TestName, __VA_ARGS__)
 
#define INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)   INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST1, INTERNAL_CATCH_DECLARE_SIG_TEST0)(TestName, __VA_ARGS__)
 
#define INTERNAL_CATCH_REMOVE_PARENS_GEN(...)   INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_REMOVE_PARENS_11_ARG,INTERNAL_CATCH_REMOVE_PARENS_10_ARG,INTERNAL_CATCH_REMOVE_PARENS_9_ARG,INTERNAL_CATCH_REMOVE_PARENS_8_ARG,INTERNAL_CATCH_REMOVE_PARENS_7_ARG,INTERNAL_CATCH_REMOVE_PARENS_6_ARG,INTERNAL_CATCH_REMOVE_PARENS_5_ARG,INTERNAL_CATCH_REMOVE_PARENS_4_ARG,INTERNAL_CATCH_REMOVE_PARENS_3_ARG,INTERNAL_CATCH_REMOVE_PARENS_2_ARG,INTERNAL_CATCH_REMOVE_PARENS_1_ARG)(__VA_ARGS__)
 
#define INTERNAL_CATCH_TESTCASE2(TestName, ...)
 
#define INTERNAL_CATCH_TESTCASE(...)    INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )
 
#define INTERNAL_CATCH_METHOD_AS_TEST_CASE(QualifiedMethod, ...)
 
#define INTERNAL_CATCH_TEST_CASE_METHOD2(TestName, ClassName, ...)
 
#define INTERNAL_CATCH_TEST_CASE_METHOD(ClassName, ...)    INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )
 
#define INTERNAL_CATCH_REGISTER_TESTCASE(Function, ...)
 
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_2(TestName, TestFunc, Name, Tags, Signature, ...)
 
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...)    INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ )
 
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...)    INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ )
 
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(TestName, TestFuncName, Name, Tags, Signature, TmplTypes, TypesList)
 
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)    INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename T,__VA_ARGS__)
 
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)    INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__)
 
#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2(TestName, TestFunc, Name, Tags, TmplList)
 
#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(Name, Tags, TmplList)    INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, TmplList )
 
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, ...)
 
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD(ClassName, Name, Tags, ...)    INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )
 
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG(ClassName, Name, Tags, Signature, ...)    INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )
 
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, TmplTypes, TypesList)
 
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD(ClassName, Name, Tags, ...)    INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, typename T, __VA_ARGS__ )
 
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG(ClassName, Name, Tags, Signature, ...)    INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, Signature, __VA_ARGS__ )
 
#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, TmplList)
 
#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD(ClassName, Name, Tags, TmplList)    INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, TmplList )
 
#define INTERNAL_CATCH_REGISTER_ENUM(enumName, ...)
 
#define CATCH_REGISTER_ENUM(enumName, ...)   INTERNAL_CATCH_REGISTER_ENUM( enumName, __VA_ARGS__ )
 
#define CATCH_INTERNAL_STRINGIFY(...)   #__VA_ARGS__
 
#define INTERNAL_CATCH_TRY
 
#define INTERNAL_CATCH_CATCH(capturer)
 
#define INTERNAL_CATCH_REACT(handler)   handler.complete();
 
#define INTERNAL_CATCH_TEST(macroName, resultDisposition, ...)
 
#define INTERNAL_CATCH_IF(macroName, resultDisposition, ...)
 
#define INTERNAL_CATCH_ELSE(macroName, resultDisposition, ...)
 
#define INTERNAL_CATCH_NO_THROW(macroName, resultDisposition, ...)
 
#define INTERNAL_CATCH_THROWS(macroName, resultDisposition, ...)
 
#define INTERNAL_CATCH_THROWS_AS(macroName, exceptionType, resultDisposition, expr)
 
#define INTERNAL_CATCH_MSG(macroName, messageType, resultDisposition, ...)
 
#define INTERNAL_CATCH_CAPTURE(varName, macroName, ...)
 
#define INTERNAL_CATCH_INFO(macroName, log)    Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage )( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log );
 
#define INTERNAL_CATCH_UNSCOPED_INFO(macroName, log)    Catch::getResultCapture().emplaceUnscopedMessage( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log )
 
#define INTERNAL_CATCH_THROWS_STR_MATCHES(macroName, resultDisposition, matcher, ...)
 
#define INTERNAL_CATCH_SECTION(...)
 
#define INTERNAL_CATCH_DYNAMIC_SECTION(...)
 
#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2(translatorName, signature)
 
#define INTERNAL_CATCH_TRANSLATE_EXCEPTION(signature)   INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )
 
#define INTERNAL_CHECK_THAT(macroName, matcher, resultDisposition, arg)
 
#define INTERNAL_CATCH_THROWS_MATCHES(macroName, exceptionType, resultDisposition, matcher, ...)
 
#define CATCH_MAKE_MSG(...)    (Catch::ReusableStringStream() << __VA_ARGS__).str()
 
#define CATCH_INTERNAL_ERROR(...)    Catch::throw_logic_error(CATCH_MAKE_MSG( CATCH_INTERNAL_LINEINFO << ": Internal Catch2 error: " << __VA_ARGS__))
 
#define CATCH_ERROR(...)    Catch::throw_domain_error(CATCH_MAKE_MSG( __VA_ARGS__ ))
 
#define CATCH_RUNTIME_ERROR(...)    Catch::throw_runtime_error(CATCH_MAKE_MSG( __VA_ARGS__ ))
 
#define CATCH_ENFORCE(condition, ...)    do{ if( !(condition) ) CATCH_ERROR( __VA_ARGS__ ); } while(false)
 
#define GENERATE(...)
 
#define GENERATE_COPY(...)
 
#define GENERATE_REF(...)
 
#define REQUIRE(...)   INTERNAL_CATCH_TEST( "REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__ )
 
#define REQUIRE_FALSE(...)   INTERNAL_CATCH_TEST( "REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )
 
#define REQUIRE_THROWS(...)   INTERNAL_CATCH_THROWS( "REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ )
 
#define REQUIRE_THROWS_AS(expr, exceptionType)   INTERNAL_CATCH_THROWS_AS( "REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr )
 
#define REQUIRE_THROWS_WITH(expr, matcher)   INTERNAL_CATCH_THROWS_STR_MATCHES( "REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr )
 
#define REQUIRE_THROWS_MATCHES(expr, exceptionType, matcher)   INTERNAL_CATCH_THROWS_MATCHES( "REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher, expr )
 
#define REQUIRE_NOTHROW(...)   INTERNAL_CATCH_NO_THROW( "REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__ )
 
#define CHECK(...)   INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
 
#define CHECK_FALSE(...)   INTERNAL_CATCH_TEST( "CHECK_FALSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )
 
#define CHECKED_IF(...)   INTERNAL_CATCH_IF( "CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
 
#define CHECKED_ELSE(...)   INTERNAL_CATCH_ELSE( "CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
 
#define CHECK_NOFAIL(...)   INTERNAL_CATCH_TEST( "CHECK_NOFAIL", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )
 
#define CHECK_THROWS(...)   INTERNAL_CATCH_THROWS( "CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
 
#define CHECK_THROWS_AS(expr, exceptionType)   INTERNAL_CATCH_THROWS_AS( "CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr )
 
#define CHECK_THROWS_WITH(expr, matcher)   INTERNAL_CATCH_THROWS_STR_MATCHES( "CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr )
 
#define CHECK_THROWS_MATCHES(expr, exceptionType, matcher)   INTERNAL_CATCH_THROWS_MATCHES( "CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )
 
#define CHECK_NOTHROW(...)   INTERNAL_CATCH_NO_THROW( "CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
 
#define CHECK_THAT(arg, matcher)   INTERNAL_CHECK_THAT( "CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg )
 
#define REQUIRE_THAT(arg, matcher)   INTERNAL_CHECK_THAT( "REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg )
 
#define INFO(msg)   INTERNAL_CATCH_INFO( "INFO", msg )
 
#define UNSCOPED_INFO(msg)   INTERNAL_CATCH_UNSCOPED_INFO( "UNSCOPED_INFO", msg )
 
#define WARN(msg)   INTERNAL_CATCH_MSG( "WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
 
#define CAPTURE(...)   INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CAPTURE",__VA_ARGS__ )
 
#define TEST_CASE(...)   INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
 
#define TEST_CASE_METHOD(className, ...)   INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
 
#define METHOD_AS_TEST_CASE(method, ...)   INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
 
#define REGISTER_TEST_CASE(Function, ...)   INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
 
#define SECTION(...)   INTERNAL_CATCH_SECTION( __VA_ARGS__ )
 
#define DYNAMIC_SECTION(...)   INTERNAL_CATCH_DYNAMIC_SECTION( __VA_ARGS__ )
 
#define FAIL(...)   INTERNAL_CATCH_MSG( "FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__ )
 
#define FAIL_CHECK(...)   INTERNAL_CATCH_MSG( "FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
 
#define SUCCEED(...)   INTERNAL_CATCH_MSG( "SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
 
#define ANON_TEST_CASE()   INTERNAL_CATCH_TESTCASE()
 
#define TEMPLATE_TEST_CASE(...)   INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )
 
#define TEMPLATE_TEST_CASE_SIG(...)   INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ )
 
#define TEMPLATE_TEST_CASE_METHOD(className, ...)   INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )
 
#define TEMPLATE_TEST_CASE_METHOD_SIG(className, ...)   INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ )
 
#define TEMPLATE_PRODUCT_TEST_CASE(...)   INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ )
 
#define TEMPLATE_PRODUCT_TEST_CASE_SIG(...)   INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ )
 
#define TEMPLATE_PRODUCT_TEST_CASE_METHOD(className, ...)   INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ )
 
#define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG(className, ...)   INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ )
 
#define TEMPLATE_LIST_TEST_CASE(...)   INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(__VA_ARGS__)
 
#define TEMPLATE_LIST_TEST_CASE_METHOD(className, ...)   INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, __VA_ARGS__ )
 
#define STATIC_REQUIRE(...)   static_assert( __VA_ARGS__, #__VA_ARGS__ ); SUCCEED( #__VA_ARGS__ )
 
#define STATIC_REQUIRE_FALSE(...)   static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); SUCCEED( "!(" #__VA_ARGS__ ")" )
 
#define CATCH_TRANSLATE_EXCEPTION(signature)   INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
 
#define SCENARIO(...)   TEST_CASE( "Scenario: " __VA_ARGS__ )
 
#define SCENARIO_METHOD(className, ...)   INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
 
#define GIVEN(desc)   INTERNAL_CATCH_DYNAMIC_SECTION( " Given: " << desc )
 
#define AND_GIVEN(desc)   INTERNAL_CATCH_DYNAMIC_SECTION( "And given: " << desc )
 
#define WHEN(desc)   INTERNAL_CATCH_DYNAMIC_SECTION( " When: " << desc )
 
#define AND_WHEN(desc)   INTERNAL_CATCH_DYNAMIC_SECTION( " And when: " << desc )
 
#define THEN(desc)   INTERNAL_CATCH_DYNAMIC_SECTION( " Then: " << desc )
 
#define AND_THEN(desc)   INTERNAL_CATCH_DYNAMIC_SECTION( " And: " << desc )
 

Typedefs

template<typename Func , typename... U>
using FunctionReturnType = typename std::remove_reference< typename std::remove_cv< typename std::result_of< Func(U...)>::type >::type >::type
 
using IReporterFactoryPtr = std::shared_ptr< IReporterFactory >
 
using exceptionTranslateFunction = std::string(*)()
 
using ExceptionTranslators = std::vector< std::unique_ptr< IExceptionTranslator const > >
 
using StringMatcher = Matchers::Impl::MatcherBase< std::string >
 
using GeneratorBasePtr = std::unique_ptr< GeneratorUntypedBase >
 
using IConfigPtr = std::shared_ptr< IConfig const >
 

Enumerations

enum class  Verbosity { Quiet = 0 , Normal , High }
 

Functions

unsigned int rngSeed ()
 
std::ostream & operator<< (std::ostream &, Catch_global_namespace_dummy)
 
std::ostream & operator<< (std::ostream &os, SourceLineInfo const &info)
 
template<typename T >
T const & operator+ (T const &value, StreamEndStop)
 
bool isThrowSafe (TestCase const &testCase, IConfig const &config)
 
bool matchTest (TestCase const &testCase, TestSpec const &testSpec, IConfig const &config)
 
std::vector< TestCase > filterTests (std::vector< TestCase > const &testCases, TestSpec const &testSpec, IConfig const &config)
 
std::vector< TestCase > const & getAllTestCasesSorted (IConfig const &config)
 
auto operator+= (std::string &lhs, StringRef const &sr) -> std::string &
 
auto operator<< (std::ostream &os, StringRef const &sr) -> std::ostream &
 
constexpr auto operator""_sr (char const *rawChars, std::size_t size) noexcept -> StringRef
 
constexpr auto operator""_catch_sr (char const *rawChars, std::size_t size) noexcept -> Catch::StringRef
 
auto makeTestInvoker (void(*testAsFunction)()) noexcept -> ITestInvoker *
 
template<typename C >
auto makeTestInvoker (void(C::*testAsMethod)()) noexcept -> ITestInvoker *
 
bool isOk (ResultWas::OfType resultType)
 
bool isJustInfo (int flags)
 
ResultDisposition::Flags operator| (ResultDisposition::Flags lhs, ResultDisposition::Flags rhs)
 
bool shouldContinueOnFailure (int flags)
 
bool isFalseTest (int flags)
 
bool shouldSuppressFailure (int flags)
 
std::ostream & cout ()
 
std::ostream & cerr ()
 
std::ostream & clog ()
 
auto makeStream (StringRef const &filename) -> IStream const *
 
std::string rawMemoryToString (const void *object, std::size_t size)
 
template<typename T >
std::string rawMemoryToString (const T &object)
 
template<typename E >
std::string convertUnknownEnumToString (E e)
 
template<typename T >
std::enable_if< !std::is_enum< T >::value &&!std::is_base_of< std::exception, T >::value, std::string >::type convertUnstreamable (T const &)
 
template<typename T >
std::enable_if< !std::is_enum< T >::value &&std::is_base_of< std::exception, T >::value, std::string >::type convertUnstreamable (T const &ex)
 
template<typename T >
std::enable_if< std::is_enum< T >::value, std::string >::type convertUnstreamable (T const &value)
 
template<typename T >
std::string stringify (const T &e)
 
template<typename InputIterator , typename Sentinel = InputIterator>
std::string rangeToString (InputIterator first, Sentinel last)
 
template<typename Range >
std::string rangeToString (Range const &range)
 
template<typename Allocator >
std::string rangeToString (std::vector< bool, Allocator > const &v)
 
void formatReconstructedExpression (std::ostream &os, std::string const &lhs, StringRef op, std::string const &rhs)
 
template<typename LhsT , typename RhsT >
auto compareEqual (LhsT const &lhs, RhsT const &rhs) -> bool
 
template<typename T >
auto compareEqual (T *const &lhs, int rhs) -> bool
 
template<typename T >
auto compareEqual (T *const &lhs, long rhs) -> bool
 
template<typename T >
auto compareEqual (int lhs, T *const &rhs) -> bool
 
template<typename T >
auto compareEqual (long lhs, T *const &rhs) -> bool
 
template<typename LhsT , typename RhsT >
auto compareNotEqual (LhsT const &lhs, RhsT &&rhs) -> bool
 
template<typename T >
auto compareNotEqual (T *const &lhs, int rhs) -> bool
 
template<typename T >
auto compareNotEqual (T *const &lhs, long rhs) -> bool
 
template<typename T >
auto compareNotEqual (int lhs, T *const &rhs) -> bool
 
template<typename T >
auto compareNotEqual (long lhs, T *const &rhs) -> bool
 
void handleExpression (ITransientExpression const &expr)
 
template<typename T >
void handleExpression (ExprLhs< T > const &expr)
 
IResultCapture & getResultCapture ()
 
void handleExceptionMatchExpr (AssertionHandler &handler, std::string const &str, StringRef const &matcherString)
 
auto getCurrentNanosecondsSinceEpoch () -> uint64_t
 
auto getEstimatedClockResolution () -> uint64_t
 
IRegistryHub const & getRegistryHub ()
 
IMutableRegistryHub & getMutableRegistryHub ()
 
void cleanUp ()
 
std::string translateActiveException ()
 
Detail::Approx operator""_a (long double val)
 
Detail::Approx operator""_a (unsigned long long val)
 
bool startsWith (std::string const &s, std::string const &prefix)
 
bool startsWith (std::string const &s, char prefix)
 
bool endsWith (std::string const &s, std::string const &suffix)
 
bool endsWith (std::string const &s, char suffix)
 
bool contains (std::string const &s, std::string const &infix)
 
void toLowerInPlace (std::string &s)
 
std::string toLower (std::string const &s)
 
std::string trim (std::string const &str)
 Returns a new string without whitespace at the start/end. More...
 
StringRef trim (StringRef ref)
 Returns a substring of the original ref without whitespace. Beware lifetimes! More...
 
std::vector< StringRef > splitStringRef (StringRef str, char delimiter)
 
bool replaceInPlace (std::string &str, std::string const &replaceThis, std::string const &withThis)
 
Exception::ExceptionMessageMatcher Message (std::string const &message)
 
Floating::WithinUlpsMatcher WithinULP (double target, uint64_t maxUlpDiff)
 
Floating::WithinUlpsMatcher WithinULP (float target, uint64_t maxUlpDiff)
 
Floating::WithinAbsMatcher WithinAbs (double target, double margin)
 
Floating::WithinRelMatcher WithinRel (double target, double eps)
 
Floating::WithinRelMatcher WithinRel (double target)
 
Floating::WithinRelMatcher WithinRel (float target, float eps)
 
Floating::WithinRelMatcher WithinRel (float target)
 
std::string finalizeDescription (const std::string &desc)
 
template<typename T >
Generic::PredicateMatcher< T > Predicate (std::function< bool(T const &)> const &predicate, std::string const &description="")
 
StdString::EqualsMatcher Equals (std::string const &str, CaseSensitive::Choice caseSensitivity=CaseSensitive::Yes)
 
StdString::ContainsMatcher Contains (std::string const &str, CaseSensitive::Choice caseSensitivity=CaseSensitive::Yes)
 
StdString::EndsWithMatcher EndsWith (std::string const &str, CaseSensitive::Choice caseSensitivity=CaseSensitive::Yes)
 
StdString::StartsWithMatcher StartsWith (std::string const &str, CaseSensitive::Choice caseSensitivity=CaseSensitive::Yes)
 
StdString::RegexMatcher Matches (std::string const &regex, CaseSensitive::Choice caseSensitivity=CaseSensitive::Yes)
 
template<typename T , typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp>
Vector::ContainsMatcher< T, AllocComp, AllocMatch > Contains (std::vector< T, AllocComp > const &comparator)
 
template<typename T , typename Alloc = std::allocator<T>>
Vector::ContainsElementMatcher< T, Alloc > VectorContains (T const &comparator)
 
template<typename T , typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp>
Vector::EqualsMatcher< T, AllocComp, AllocMatch > Equals (std::vector< T, AllocComp > const &comparator)
 
template<typename T , typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp>
Vector::ApproxMatcher< T, AllocComp, AllocMatch > Approx (std::vector< T, AllocComp > const &comparator)
 
template<typename T , typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp>
Vector::UnorderedEqualsMatcher< T, AllocComp, AllocMatch > UnorderedEquals (std::vector< T, AllocComp > const &target)
 
void handleExceptionMatchExpr (AssertionHandler &handler, StringMatcher const &matcher, StringRef const &matcherString)
 
template<typename ArgT , typename MatcherT >
auto makeMatchExpr (ArgT const &arg, MatcherT const &matcher, StringRef const &matcherString) -> MatchExpr< ArgT, MatcherT >
 
void throw_exception (std::exception const &e)
 
void throw_logic_error (std::string const &msg)
 
void throw_domain_error (std::string const &msg)
 
void throw_runtime_error (std::string const &msg)
 
template<typename T , typename... Args>
std::unique_ptr< T > make_unique (Args &&... args)
 
template<typename T >
GeneratorWrapper< T > value (T &&value)
 
template<typename T >
GeneratorWrapper< T > values (std::initializer_list< T > values)
 
template<typename... Ts>
GeneratorWrapper< std::tuple< Ts... > > table (std::initializer_list< std::tuple< typename std::decay< Ts >::type... >> tuples)
 
template<typename T , typename... Gs>
auto makeGenerators (GeneratorWrapper< T > &&generator, Gs &&... moreGenerators) -> Generators< T >
 
template<typename T >
auto makeGenerators (GeneratorWrapper< T > &&generator) -> Generators< T >
 
template<typename T , typename... Gs>
auto makeGenerators (T &&val, Gs &&... moreGenerators) -> Generators< T >
 
template<typename T , typename U , typename... Gs>
auto makeGenerators (as< T >, U &&val, Gs &&... moreGenerators) -> Generators< T >
 
auto acquireGeneratorTracker (StringRef generatorName, SourceLineInfo const &lineInfo) -> IGeneratorTracker &
 
template<typename L >
auto generate (StringRef generatorName, SourceLineInfo const &lineInfo, L const &generatorExpression) -> decltype(std::declval< decltype(generatorExpression())>().get())
 
template<typename T >
GeneratorWrapper< T > take (size_t target, GeneratorWrapper< T > &&generator)
 
template<typename T , typename Predicate >
GeneratorWrapper< T > filter (Predicate &&pred, GeneratorWrapper< T > &&generator)
 
template<typename T >
GeneratorWrapper< T > repeat (size_t repeats, GeneratorWrapper< T > &&generator)
 
template<typename Func , typename U , typename T = FunctionReturnType<Func, U>>
GeneratorWrapper< T > map (Func &&function, GeneratorWrapper< U > &&generator)
 
template<typename T >
GeneratorWrapper< std::vector< T > > chunk (size_t size, GeneratorWrapper< T > &&generator)
 
IMutableContext & getCurrentMutableContext ()
 
IContext & getCurrentContext ()
 
void cleanUpContext ()
 
SimplePcg32 & rng ()
 
template<typename T >
std::enable_if< std::is_integral< T >::value &&!std::is_same< T, bool >::value, GeneratorWrapper< T > >::type random (T a, T b)
 
template<typename T >
std::enable_if< std::is_floating_point< T >::value, GeneratorWrapper< T > >::type random (T a, T b)
 
template<typename T >
GeneratorWrapper< T > range (T const &start, T const &end, T const &step)
 
template<typename T >
GeneratorWrapper< T > range (T const &start, T const &end)
 
template<typename InputIterator , typename InputSentinel , typename ResultType = typename std::iterator_traits<InputIterator>::value_type>
GeneratorWrapper< ResultType > from_range (InputIterator from, InputSentinel to)
 
template<typename Container , typename ResultType = typename Container::value_type>
GeneratorWrapper< ResultType > from_range (Container const &cnt)
 
TestCase makeTestCase (ITestInvoker *testCase, std::string const &className, NameAndTags const &nameAndTags, SourceLineInfo const &lineInfo)
 

Variables

const std::string unprintableString
 

Macro Definition Documentation

◆ CATCH_VERSION_MAJOR

#define CATCH_VERSION_MAJOR   2

◆ CATCH_VERSION_MINOR

#define CATCH_VERSION_MINOR   13

◆ CATCH_VERSION_PATCH

#define CATCH_VERSION_PATCH   7

◆ CATCH_PLATFORM_WINDOWS

#define CATCH_PLATFORM_WINDOWS

◆ CATCH_INTERNAL_CONFIG_COUNTER

#define CATCH_INTERNAL_CONFIG_COUNTER

◆ CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER

#define CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER

◆ CATCH_CONFIG_COUNTER

#define CATCH_CONFIG_COUNTER

◆ CATCH_CONFIG_WCHAR

#define CATCH_CONFIG_WCHAR

◆ CATCH_CONFIG_CPP11_TO_STRING

#define CATCH_CONFIG_CPP11_TO_STRING

◆ CATCH_CONFIG_DISABLE_EXCEPTIONS

#define CATCH_CONFIG_DISABLE_EXCEPTIONS

◆ CATCH_CONFIG_GLOBAL_NEXTAFTER

#define CATCH_CONFIG_GLOBAL_NEXTAFTER

◆ CATCH_INTERNAL_START_WARNINGS_SUPPRESSION

#define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION

◆ CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION

#define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION

◆ CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS

#define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS

◆ CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS

#define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS

◆ CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS

#define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS

◆ CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS

#define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS

◆ CATCH_INTERNAL_IGNORE_BUT_WARN

#define CATCH_INTERNAL_IGNORE_BUT_WARN (   ...)

◆ CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS

#define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS

◆ CATCH_TRY

#define CATCH_TRY   if ((true))

◆ CATCH_CATCH_ALL

#define CATCH_CATCH_ALL   if ((false))

◆ CATCH_CATCH_ANON

#define CATCH_CATCH_ANON (   type)    if ((false))

◆ INTERNAL_CATCH_UNIQUE_NAME_LINE2

#define INTERNAL_CATCH_UNIQUE_NAME_LINE2 (   name,
  line 
)    name##line

◆ INTERNAL_CATCH_UNIQUE_NAME_LINE

#define INTERNAL_CATCH_UNIQUE_NAME_LINE (   name,
  line 
)    INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )

◆ INTERNAL_CATCH_UNIQUE_NAME

#define INTERNAL_CATCH_UNIQUE_NAME (   name)    INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )

◆ CATCH_INTERNAL_LINEINFO

#define CATCH_INTERNAL_LINEINFO    ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )

◆ CATCH_REGISTER_TAG_ALIAS

#define CATCH_REGISTER_TAG_ALIAS (   alias,
  spec 
)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
#define CATCH_INTERNAL_LINEINFO
Definition: catch2.hpp:541
#define INTERNAL_CATCH_UNIQUE_NAME(name)
Definition: catch2.hpp:469
Definition: catch2.hpp:547

◆ CATCH_RECURSION_LEVEL0

#define CATCH_RECURSION_LEVEL0 (   ...)    __VA_ARGS__

◆ CATCH_RECURSION_LEVEL1

#define CATCH_RECURSION_LEVEL1 (   ...)    CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__)))

◆ CATCH_RECURSION_LEVEL2

#define CATCH_RECURSION_LEVEL2 (   ...)    CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__)))

◆ CATCH_RECURSION_LEVEL3

#define CATCH_RECURSION_LEVEL3 (   ...)    CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__)))

◆ CATCH_RECURSION_LEVEL4

#define CATCH_RECURSION_LEVEL4 (   ...)    CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__)))

◆ CATCH_RECURSION_LEVEL5

#define CATCH_RECURSION_LEVEL5 (   ...)    CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__)))

◆ CATCH_RECURSE

#define CATCH_RECURSE (   ...)    CATCH_RECURSION_LEVEL5(__VA_ARGS__)

◆ CATCH_REC_END

#define CATCH_REC_END (   ...)

◆ CATCH_REC_OUT

#define CATCH_REC_OUT

◆ CATCH_EMPTY

#define CATCH_EMPTY ( )

◆ CATCH_DEFER

#define CATCH_DEFER (   id)    id CATCH_EMPTY()

◆ CATCH_REC_GET_END2

#define CATCH_REC_GET_END2 ( )    0, CATCH_REC_END

◆ CATCH_REC_GET_END1

#define CATCH_REC_GET_END1 (   ...)    CATCH_REC_GET_END2

◆ CATCH_REC_GET_END

#define CATCH_REC_GET_END (   ...)    CATCH_REC_GET_END1

◆ CATCH_REC_NEXT0

#define CATCH_REC_NEXT0 (   test,
  next,
  ... 
)    next CATCH_REC_OUT

◆ CATCH_REC_NEXT1

#define CATCH_REC_NEXT1 (   test,
  next 
)    CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0)

◆ CATCH_REC_NEXT

#define CATCH_REC_NEXT (   test,
  next 
)    CATCH_REC_NEXT1(CATCH_REC_GET_END test, next)

◆ CATCH_REC_LIST0

#define CATCH_REC_LIST0 (   f,
  x,
  peek,
  ... 
)    , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ )

◆ CATCH_REC_LIST1

#define CATCH_REC_LIST1 (   f,
  x,
  peek,
  ... 
)    , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ )

◆ CATCH_REC_LIST2

#define CATCH_REC_LIST2 (   f,
  x,
  peek,
  ... 
)    f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ )

◆ CATCH_REC_LIST0_UD

#define CATCH_REC_LIST0_UD (   f,
  userdata,
  x,
  peek,
  ... 
)    , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ )

◆ CATCH_REC_LIST1_UD

#define CATCH_REC_LIST1_UD (   f,
  userdata,
  x,
  peek,
  ... 
)    , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0_UD) ) ( f, userdata, peek, __VA_ARGS__ )

◆ CATCH_REC_LIST2_UD

#define CATCH_REC_LIST2_UD (   f,
  userdata,
  x,
  peek,
  ... 
)    f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ )

◆ CATCH_REC_LIST_UD

#define CATCH_REC_LIST_UD (   f,
  userdata,
  ... 
)    CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

◆ CATCH_REC_LIST

#define CATCH_REC_LIST (   f,
  ... 
)    CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

◆ INTERNAL_CATCH_EXPAND1

#define INTERNAL_CATCH_EXPAND1 (   param)    INTERNAL_CATCH_EXPAND2(param)

◆ INTERNAL_CATCH_EXPAND2

#define INTERNAL_CATCH_EXPAND2 (   ...)    INTERNAL_CATCH_NO## __VA_ARGS__

◆ INTERNAL_CATCH_DEF

#define INTERNAL_CATCH_DEF (   ...)    INTERNAL_CATCH_DEF __VA_ARGS__

◆ INTERNAL_CATCH_NOINTERNAL_CATCH_DEF

#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF

◆ INTERNAL_CATCH_STRINGIZE

#define INTERNAL_CATCH_STRINGIZE (   ...)    INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__)

◆ INTERNAL_CATCH_STRINGIZE2

#define INTERNAL_CATCH_STRINGIZE2 (   ...)    #__VA_ARGS__

◆ INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS

#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS (   param)    INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param))

◆ INTERNAL_CATCH_MAKE_NAMESPACE2

#define INTERNAL_CATCH_MAKE_NAMESPACE2 (   ...)    ns_##__VA_ARGS__

◆ INTERNAL_CATCH_MAKE_NAMESPACE

#define INTERNAL_CATCH_MAKE_NAMESPACE (   name)    INTERNAL_CATCH_MAKE_NAMESPACE2(name)

◆ INTERNAL_CATCH_REMOVE_PARENS

#define INTERNAL_CATCH_REMOVE_PARENS (   ...)    INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__)

◆ INTERNAL_CATCH_MAKE_TYPE_LIST2

#define INTERNAL_CATCH_MAKE_TYPE_LIST2 (   ...)    decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS_GEN(__VA_ARGS__)>())

◆ INTERNAL_CATCH_MAKE_TYPE_LIST

#define INTERNAL_CATCH_MAKE_TYPE_LIST (   ...)    INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))

◆ INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES

#define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES (   ...)     CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__)

◆ INTERNAL_CATCH_REMOVE_PARENS_1_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_1_ARG (   _0)    INTERNAL_CATCH_REMOVE_PARENS(_0)

◆ INTERNAL_CATCH_REMOVE_PARENS_2_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_2_ARG (   _0,
  _1 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1)

◆ INTERNAL_CATCH_REMOVE_PARENS_3_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_3_ARG (   _0,
  _1,
  _2 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2)

◆ INTERNAL_CATCH_REMOVE_PARENS_4_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_4_ARG (   _0,
  _1,
  _2,
  _3 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3)

◆ INTERNAL_CATCH_REMOVE_PARENS_5_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_5_ARG (   _0,
  _1,
  _2,
  _3,
  _4 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4)

◆ INTERNAL_CATCH_REMOVE_PARENS_6_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_6_ARG (   _0,
  _1,
  _2,
  _3,
  _4,
  _5 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5)

◆ INTERNAL_CATCH_REMOVE_PARENS_7_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG (   _0,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _3, _4, _5, _6)

◆ INTERNAL_CATCH_REMOVE_PARENS_8_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_8_ARG (   _0,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7)

◆ INTERNAL_CATCH_REMOVE_PARENS_9_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_9_ARG (   _0,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8)

◆ INTERNAL_CATCH_REMOVE_PARENS_10_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_10_ARG (   _0,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9)

◆ INTERNAL_CATCH_REMOVE_PARENS_11_ARG

#define INTERNAL_CATCH_REMOVE_PARENS_11_ARG (   _0,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  _10 
)    INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10)

◆ INTERNAL_CATCH_VA_NARGS_IMPL

#define INTERNAL_CATCH_VA_NARGS_IMPL (   _0,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  _10,
  N,
  ... 
)    N

◆ INTERNAL_CATCH_TYPE_GEN

#define INTERNAL_CATCH_TYPE_GEN

◆ INTERNAL_CATCH_NTTP_1

#define INTERNAL_CATCH_NTTP_1 (   signature,
  ... 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)> struct Nttp{};\
template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\
constexpr auto get_wrapper() noexcept -> Nttp<__VA_ARGS__> { return {}; } \
template<template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...> struct NttpTemplateTypeList{};\
template<template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...Cs>\
constexpr auto get_wrapper() noexcept -> NttpTemplateTypeList<Cs...> { return {}; } \
\
template< template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class Container, template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class List, INTERNAL_CATCH_REMOVE_PARENS(signature)>\
struct rewrap<NttpTemplateTypeList<Container>, List<__VA_ARGS__>> { using type = TypeList<Container<__VA_ARGS__>>; };\
template< template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class Container, template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class List, INTERNAL_CATCH_REMOVE_PARENS(signature), typename...Elements>\
struct rewrap<NttpTemplateTypeList<Container>, List<__VA_ARGS__>, Elements...> { using type = typename append<TypeList<Container<__VA_ARGS__>>, typename rewrap<NttpTemplateTypeList<Container>, Elements...>::type>::type; };\
template<template <typename...> class Final, template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...Containers, typename...Types>\
struct create<Final, NttpTemplateTypeList<Containers...>, TypeList<Types...>> { using type = typename append<Final<>, typename rewrap<NttpTemplateTypeList<Containers>, Types...>::type...>::type; };
#define INTERNAL_CATCH_REMOVE_PARENS(...)
Definition: catch2.hpp:753

◆ INTERNAL_CATCH_DECLARE_SIG_TEST0

#define INTERNAL_CATCH_DECLARE_SIG_TEST0 (   TestName)

◆ INTERNAL_CATCH_DECLARE_SIG_TEST1

#define INTERNAL_CATCH_DECLARE_SIG_TEST1 (   TestName,
  signature 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\
static void TestName()

◆ INTERNAL_CATCH_DECLARE_SIG_TEST_X

#define INTERNAL_CATCH_DECLARE_SIG_TEST_X (   TestName,
  signature,
  ... 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\
static void TestName()

◆ INTERNAL_CATCH_DEFINE_SIG_TEST0

#define INTERNAL_CATCH_DEFINE_SIG_TEST0 (   TestName)

◆ INTERNAL_CATCH_DEFINE_SIG_TEST1

#define INTERNAL_CATCH_DEFINE_SIG_TEST1 (   TestName,
  signature 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\
static void TestName()

◆ INTERNAL_CATCH_DEFINE_SIG_TEST_X

#define INTERNAL_CATCH_DEFINE_SIG_TEST_X (   TestName,
  signature,
  ... 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\
static void TestName()

◆ INTERNAL_CATCH_NTTP_REGISTER0

#define INTERNAL_CATCH_NTTP_REGISTER0 (   TestFunc,
  signature 
)
Value:
template<typename Type>\
void reg_test(TypeList<Type>, Catch::NameAndTags nameAndTags)\
{\
Catch::AutoReg( Catch::makeTestInvoker(&TestFunc<Type>), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), nameAndTags);\
}
A non-owning string class (similar to the forthcoming std::string_view) Note that,...
Definition: catch2.hpp:604
auto makeTestInvoker(void(*testAsFunction)()) noexcept -> ITestInvoker *
Definition: catch2.hpp:978

◆ INTERNAL_CATCH_NTTP_REGISTER

#define INTERNAL_CATCH_NTTP_REGISTER (   TestFunc,
  signature,
  ... 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\
void reg_test(Nttp<__VA_ARGS__>, Catch::NameAndTags nameAndTags)\
{\
Catch::AutoReg( Catch::makeTestInvoker(&TestFunc<__VA_ARGS__>), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), nameAndTags);\
}

◆ INTERNAL_CATCH_NTTP_REGISTER_METHOD0

#define INTERNAL_CATCH_NTTP_REGISTER_METHOD0 (   TestName,
  signature,
  ... 
)
Value:
template<typename Type>\
void reg_test(TypeList<Type>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\
{\
Catch::AutoReg( Catch::makeTestInvoker(&TestName<Type>::test), CATCH_INTERNAL_LINEINFO, className, nameAndTags);\
}

◆ INTERNAL_CATCH_NTTP_REGISTER_METHOD

#define INTERNAL_CATCH_NTTP_REGISTER_METHOD (   TestName,
  signature,
  ... 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\
void reg_test(Nttp<__VA_ARGS__>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\
{\
Catch::AutoReg( Catch::makeTestInvoker(&TestName<__VA_ARGS__>::test), CATCH_INTERNAL_LINEINFO, className, nameAndTags);\
}

◆ INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0

#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0 (   TestName,
  ClassName 
)

◆ INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1

#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1 (   TestName,
  ClassName,
  signature 
)
Value:
template<typename TestType> \
struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName)<TestType> { \
void test();\
}

◆ INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X

#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X (   TestName,
  ClassName,
  signature,
  ... 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)> \
struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName)<__VA_ARGS__> { \
void test();\
}

◆ INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0

#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0 (   TestName)

◆ INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1

#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1 (   TestName,
  signature 
)
Value:
template<typename TestType> \
void INTERNAL_CATCH_MAKE_NAMESPACE(TestName)::TestName<TestType>::test()
#define INTERNAL_CATCH_MAKE_NAMESPACE(name)
Definition: catch2.hpp:751

◆ INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X

#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X (   TestName,
  signature,
  ... 
)
Value:
template<INTERNAL_CATCH_REMOVE_PARENS(signature)> \
void INTERNAL_CATCH_MAKE_NAMESPACE(TestName)::TestName<__VA_ARGS__>::test()

◆ INTERNAL_CATCH_NTTP_0

#define INTERNAL_CATCH_NTTP_0

◆ INTERNAL_CATCH_NTTP_GEN

#define INTERNAL_CATCH_NTTP_GEN (   ...)    INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__),INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_0)

◆ INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD

◆ INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD

◆ INTERNAL_CATCH_NTTP_REG_METHOD_GEN

◆ INTERNAL_CATCH_NTTP_REG_GEN

◆ INTERNAL_CATCH_DEFINE_SIG_TEST

◆ INTERNAL_CATCH_DECLARE_SIG_TEST

◆ INTERNAL_CATCH_REMOVE_PARENS_GEN

◆ INTERNAL_CATCH_TESTCASE2

#define INTERNAL_CATCH_TESTCASE2 (   TestName,
  ... 
)
Value:
static void TestName(); \
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &TestName ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); } /* NOLINT */ \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
static void TestName()
Definition: catch2.hpp:984

◆ INTERNAL_CATCH_TESTCASE

#define INTERNAL_CATCH_TESTCASE (   ...)     INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )

◆ INTERNAL_CATCH_METHOD_AS_TEST_CASE

#define INTERNAL_CATCH_METHOD_AS_TEST_CASE (   QualifiedMethod,
  ... 
)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &QualifiedMethod ), CATCH_INTERNAL_LINEINFO, "&" #QualifiedMethod, Catch::NameAndTags{ __VA_ARGS__ } ); } /* NOLINT */ \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION

◆ INTERNAL_CATCH_TEST_CASE_METHOD2

#define INTERNAL_CATCH_TEST_CASE_METHOD2 (   TestName,
  ClassName,
  ... 
)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
namespace{ \
struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \
void test(); \
}; \
Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( Catch::makeTestInvoker( &TestName::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ __VA_ARGS__ } ); /* NOLINT */ \
} \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
void TestName::test()

◆ INTERNAL_CATCH_TEST_CASE_METHOD

#define INTERNAL_CATCH_TEST_CASE_METHOD (   ClassName,
  ... 
)     INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )

◆ INTERNAL_CATCH_REGISTER_TESTCASE

#define INTERNAL_CATCH_REGISTER_TESTCASE (   Function,
  ... 
)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( Function ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); /* NOLINT */ \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION

◆ INTERNAL_CATCH_TEMPLATE_TEST_CASE_2

#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_2 (   TestName,
  TestFunc,
  Name,
  Tags,
  Signature,
  ... 
)
Value:
namespace {\
namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){\
INTERNAL_CATCH_NTTP_REG_GEN(TestFunc,INTERNAL_CATCH_REMOVE_PARENS(Signature))\
template<typename...Types> \
struct TestName{\
TestName(){\
int index = 0; \
constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\
using expander = int[];\
(void)expander{(reg_test(Types{}, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++)... };/* NOLINT */ \
}\
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
TestName<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(__VA_ARGS__)>();\
return 0;\
}();\
}\
}\
#define INTERNAL_CATCH_DECLARE_SIG_TEST(TestName,...)
Definition: catch2.hpp:901
#define CATCH_REC_LIST(f,...)
Definition: catch2.hpp:733
#define INTERNAL_CATCH_NTTP_GEN(...)
Definition: catch2.hpp:895
#define INTERNAL_CATCH_DEFINE_SIG_TEST(TestName,...)
Definition: catch2.hpp:900
#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
Definition: catch2.hpp:742

◆ INTERNAL_CATCH_TEMPLATE_TEST_CASE

#define INTERNAL_CATCH_TEMPLATE_TEST_CASE (   Name,
  Tags,
  ... 
)     INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ )

◆ INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG

#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG (   Name,
  Tags,
  Signature,
  ... 
)     INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ )

◆ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2

#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2 (   TestName,
  TestFuncName,
  Name,
  Tags,
  Signature,
  TmplTypes,
  TypesList 
)

◆ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE

#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE (   Name,
  Tags,
  ... 
)     INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename T,__VA_ARGS__)

◆ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG

#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG (   Name,
  Tags,
  Signature,
  ... 
)     INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__)

◆ INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2

#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2 (   TestName,
  TestFunc,
  Name,
  Tags,
  TmplList 
)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \
template<typename TestType> static void TestFunc(); \
namespace {\
namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){\
INTERNAL_CATCH_TYPE_GEN\
template<typename... Types> \
struct TestName { \
void reg_tests() { \
int index = 0; \
using expander = int[]; \
(void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFunc<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++)... };/* NOLINT */\
} \
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \
using TestInit = typename convert<TestName, TmplList>::type; \
TestInit t; \
t.reg_tests(); \
return 0; \
}(); \
}}\
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
template<typename TestType> \
static void TestFunc()
#define INTERNAL_CATCH_STRINGIZE(...)
Definition: catch2.hpp:739

◆ INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE

#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE (   Name,
  Tags,
  TmplList 
)     INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, TmplList )

◆ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2

#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2 (   TestNameClass,
  TestName,
  ClassName,
  Name,
  Tags,
  Signature,
  ... 
)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \
namespace {\
namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){ \
INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, INTERNAL_CATCH_REMOVE_PARENS(Signature));\
INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature))\
template<typename...Types> \
struct TestNameClass{\
TestNameClass(){\
int index = 0; \
constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\
using expander = int[];\
(void)expander{(reg_test(Types{}, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++)... };/* NOLINT */ \
}\
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
TestNameClass<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(__VA_ARGS__)>();\
return 0;\
}();\
}\
}\
#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName,...)
Definition: catch2.hpp:896

◆ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD

#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD (   ClassName,
  Name,
  Tags,
  ... 
)     INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )

◆ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG

#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG (   ClassName,
  Name,
  Tags,
  Signature,
  ... 
)     INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )

◆ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2

#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2 (   TestNameClass,
  TestName,
  ClassName,
  Name,
  Tags,
  Signature,
  TmplTypes,
  TypesList 
)

◆ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD

#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD (   ClassName,
  Name,
  Tags,
  ... 
)     INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, typename T, __VA_ARGS__ )

◆ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG

#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG (   ClassName,
  Name,
  Tags,
  Signature,
  ... 
)     INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, Signature, __VA_ARGS__ )

◆ INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2

#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2 (   TestNameClass,
  TestName,
  ClassName,
  Name,
  Tags,
  TmplList 
)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \
template<typename TestType> \
struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName <TestType>) { \
void test();\
};\
namespace {\
namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){ \
INTERNAL_CATCH_TYPE_GEN\
template<typename...Types>\
struct TestNameClass{\
void reg_tests(){\
int index = 0;\
using expander = int[];\
(void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++)... };/* NOLINT */ \
}\
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
using TestInit = typename convert<TestNameClass, TmplList>::type;\
TestInit t;\
t.reg_tests();\
return 0;\
}(); \
}}\
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
template<typename TestType> \
void TestName<TestType>::test()

◆ INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD

#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD (   ClassName,
  Name,
  Tags,
  TmplList 
)     INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, TmplList )

◆ INTERNAL_CATCH_REGISTER_ENUM

#define INTERNAL_CATCH_REGISTER_ENUM (   enumName,
  ... 
)
Value:
namespace Catch { \
template<> struct StringMaker<enumName> { \
static std::string convert( enumName value ) { \
static const auto& enumInfo = ::Catch::getMutableRegistryHub().getMutableEnumValuesRegistry().registerEnum( #enumName, #__VA_ARGS__, { __VA_ARGS__ } ); \
return static_cast<std::string>(enumInfo.lookup( static_cast<int>( value ) )); \
} \
}; \
}
GeneratorWrapper< T > value(T &&value)
Definition: catch2.hpp:3999
Definition: catch2.hpp:98
IMutableRegistryHub & getMutableRegistryHub()
virtual Detail::EnumInfo const & registerEnum(StringRef enumName, StringRef allEnums, std::vector< int > const &values)=0
virtual IMutableEnumValuesRegistry & getMutableEnumValuesRegistry()=0
static std::enable_if<::Catch::Detail::IsStreamInsertable< Fake >::value, std::string >::type convert(const Fake &value)
Definition: catch2.hpp:1617

◆ CATCH_REGISTER_ENUM

#define CATCH_REGISTER_ENUM (   enumName,
  ... 
)    INTERNAL_CATCH_REGISTER_ENUM( enumName, __VA_ARGS__ )

◆ CATCH_INTERNAL_STRINGIFY

#define CATCH_INTERNAL_STRINGIFY (   ...)    #__VA_ARGS__

◆ INTERNAL_CATCH_TRY

#define INTERNAL_CATCH_TRY

◆ INTERNAL_CATCH_CATCH

#define INTERNAL_CATCH_CATCH (   capturer)

◆ INTERNAL_CATCH_REACT

#define INTERNAL_CATCH_REACT (   handler)    handler.complete();

◆ INTERNAL_CATCH_TEST

#define INTERNAL_CATCH_TEST (   macroName,
  resultDisposition,
  ... 
)
Value:
do { \
CATCH_INTERNAL_IGNORE_BUT_WARN(__VA_ARGS__); \
Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition ); \
INTERNAL_CATCH_TRY { \
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \
catchAssertionHandler.handleExpr( Catch::Decomposer() <= __VA_ARGS__ ); \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
} INTERNAL_CATCH_CATCH( catchAssertionHandler ) \
INTERNAL_CATCH_REACT( catchAssertionHandler ) \
} while( (void)0, (false) && static_cast<bool>( !!(__VA_ARGS__) ) )
#define INTERNAL_CATCH_CATCH(capturer)
Definition: catch2.hpp:2689
#define CATCH_INTERNAL_STRINGIFY(...)
Definition: catch2.hpp:2678
Definition: catch2.hpp:2412

◆ INTERNAL_CATCH_IF

#define INTERNAL_CATCH_IF (   macroName,
  resultDisposition,
  ... 
)
Value:
INTERNAL_CATCH_TEST( macroName, resultDisposition, __VA_ARGS__ ); \
if( Catch::getResultCapture().lastAssertionPassed() )
#define INTERNAL_CATCH_TEST(macroName, resultDisposition,...)
Definition: catch2.hpp:2701
IResultCapture & getResultCapture()

◆ INTERNAL_CATCH_ELSE

#define INTERNAL_CATCH_ELSE (   macroName,
  resultDisposition,
  ... 
)
Value:
INTERNAL_CATCH_TEST( macroName, resultDisposition, __VA_ARGS__ ); \
if( !Catch::getResultCapture().lastAssertionPassed() )

◆ INTERNAL_CATCH_NO_THROW

#define INTERNAL_CATCH_NO_THROW (   macroName,
  resultDisposition,
  ... 
)
Value:
do { \
Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition ); \
try { \
static_cast<void>(__VA_ARGS__); \
catchAssertionHandler.handleExceptionNotThrownAsExpected(); \
} \
catch( ... ) { \
catchAssertionHandler.handleUnexpectedInflightException(); \
} \
INTERNAL_CATCH_REACT( catchAssertionHandler ) \
} while( false )

◆ INTERNAL_CATCH_THROWS

#define INTERNAL_CATCH_THROWS (   macroName,
  resultDisposition,
  ... 
)
Value:
do { \
Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition); \
if( catchAssertionHandler.allowThrows() ) \
try { \
static_cast<void>(__VA_ARGS__); \
catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \
} \
catch( ... ) { \
catchAssertionHandler.handleExceptionThrownAsExpected(); \
} \
else \
catchAssertionHandler.handleThrowingCallSkipped(); \
INTERNAL_CATCH_REACT( catchAssertionHandler ) \
} while( false )

◆ INTERNAL_CATCH_THROWS_AS

#define INTERNAL_CATCH_THROWS_AS (   macroName,
  exceptionType,
  resultDisposition,
  expr 
)
Value:
do { \
Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(expr) ", " CATCH_INTERNAL_STRINGIFY(exceptionType), resultDisposition ); \
if( catchAssertionHandler.allowThrows() ) \
try { \
static_cast<void>(expr); \
catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \
} \
catch( exceptionType const& ) { \
catchAssertionHandler.handleExceptionThrownAsExpected(); \
} \
catch( ... ) { \
catchAssertionHandler.handleUnexpectedInflightException(); \
} \
else \
catchAssertionHandler.handleThrowingCallSkipped(); \
INTERNAL_CATCH_REACT( catchAssertionHandler ) \
} while( false )

◆ INTERNAL_CATCH_MSG

#define INTERNAL_CATCH_MSG (   macroName,
  messageType,
  resultDisposition,
  ... 
)
Value:
do { \
Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::StringRef(), resultDisposition ); \
catchAssertionHandler.handleMessage( messageType, ( Catch::MessageStream() << __VA_ARGS__ + ::Catch::StreamEndStop() ).m_stream.str() ); \
INTERNAL_CATCH_REACT( catchAssertionHandler ) \
} while( false )
Definition: catch2.hpp:2614
Definition: catch2.hpp:532

◆ INTERNAL_CATCH_CAPTURE

#define INTERNAL_CATCH_CAPTURE (   varName,
  macroName,
  ... 
)
Value:
auto varName = Catch::Capturer( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info, #__VA_ARGS__ ); \
varName.captureValues( 0, __VA_ARGS__ )
Definition: catch2.hpp:2650
@ Info
Definition: catch2.hpp:1354

◆ INTERNAL_CATCH_INFO

#define INTERNAL_CATCH_INFO (   macroName,
  log 
)     Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage )( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log );

◆ INTERNAL_CATCH_UNSCOPED_INFO

#define INTERNAL_CATCH_UNSCOPED_INFO (   macroName,
  log 
)     Catch::getResultCapture().emplaceUnscopedMessage( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log )

◆ INTERNAL_CATCH_THROWS_STR_MATCHES

#define INTERNAL_CATCH_THROWS_STR_MATCHES (   macroName,
  resultDisposition,
  matcher,
  ... 
)
Value:
do { \
Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \
if( catchAssertionHandler.allowThrows() ) \
try { \
static_cast<void>(__VA_ARGS__); \
catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \
} \
catch( ... ) { \
Catch::handleExceptionMatchExpr( catchAssertionHandler, matcher, #matcher##_catch_sr ); \
} \
else \
catchAssertionHandler.handleThrowingCallSkipped(); \
INTERNAL_CATCH_REACT( catchAssertionHandler ) \
} while( false )
void handleExceptionMatchExpr(AssertionHandler &handler, StringMatcher const &matcher, StringRef const &matcherString)

◆ INTERNAL_CATCH_SECTION

#define INTERNAL_CATCH_SECTION (   ...)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \
if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) ) \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
Definition: catch2.hpp:2909
Definition: catch2.hpp:2858

◆ INTERNAL_CATCH_DYNAMIC_SECTION

#define INTERNAL_CATCH_DYNAMIC_SECTION (   ...)
Value:
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \
if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, (Catch::ReusableStringStream() << __VA_ARGS__).str() ) ) \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
Definition: catch2.hpp:1438

◆ INTERNAL_CATCH_TRANSLATE_EXCEPTION2

#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2 (   translatorName,
  signature 
)
Value:
static std::string translatorName( signature ); \
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); } \
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
static std::string translatorName( signature )
Definition: catch2.hpp:3019

◆ INTERNAL_CATCH_TRANSLATE_EXCEPTION

#define INTERNAL_CATCH_TRANSLATE_EXCEPTION (   signature)    INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )

◆ INTERNAL_CHECK_THAT

#define INTERNAL_CHECK_THAT (   macroName,
  matcher,
  resultDisposition,
  arg 
)
Value:
do { \
Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(arg) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \
INTERNAL_CATCH_TRY { \
catchAssertionHandler.handleExpr( Catch::makeMatchExpr( arg, matcher, #matcher##_catch_sr ) ); \
} INTERNAL_CATCH_CATCH( catchAssertionHandler ) \
INTERNAL_CATCH_REACT( catchAssertionHandler ) \
} while( false )
auto makeMatchExpr(ArgT const &arg, MatcherT const &matcher, StringRef const &matcherString) -> MatchExpr< ArgT, MatcherT >
Definition: catch2.hpp:3795

◆ INTERNAL_CATCH_THROWS_MATCHES

#define INTERNAL_CATCH_THROWS_MATCHES (   macroName,
  exceptionType,
  resultDisposition,
  matcher,
  ... 
)
Value:
do { \
Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__) ", " CATCH_INTERNAL_STRINGIFY(exceptionType) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \
if( catchAssertionHandler.allowThrows() ) \
try { \
static_cast<void>(__VA_ARGS__ ); \
catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \
} \
catch( exceptionType const& ex ) { \
catchAssertionHandler.handleExpr( Catch::makeMatchExpr( ex, matcher, #matcher##_catch_sr ) ); \
} \
catch( ... ) { \
catchAssertionHandler.handleUnexpectedInflightException(); \
} \
else \
catchAssertionHandler.handleThrowingCallSkipped(); \
INTERNAL_CATCH_REACT( catchAssertionHandler ) \
} while( false )

◆ CATCH_MAKE_MSG

#define CATCH_MAKE_MSG (   ...)     (Catch::ReusableStringStream() << __VA_ARGS__).str()

◆ CATCH_INTERNAL_ERROR

#define CATCH_INTERNAL_ERROR (   ...)     Catch::throw_logic_error(CATCH_MAKE_MSG( CATCH_INTERNAL_LINEINFO << ": Internal Catch2 error: " << __VA_ARGS__))

◆ CATCH_ERROR

#define CATCH_ERROR (   ...)     Catch::throw_domain_error(CATCH_MAKE_MSG( __VA_ARGS__ ))

◆ CATCH_RUNTIME_ERROR

#define CATCH_RUNTIME_ERROR (   ...)     Catch::throw_runtime_error(CATCH_MAKE_MSG( __VA_ARGS__ ))

◆ CATCH_ENFORCE

#define CATCH_ENFORCE (   condition,
  ... 
)     do{ if( !(condition) ) CATCH_ERROR( __VA_ARGS__ ); } while(false)

◆ GENERATE

#define GENERATE (   ...)
Value:
[ ]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } )
Definition: catch2.hpp:3842
auto generate(StringRef generatorName, SourceLineInfo const &lineInfo, L const &generatorExpression) -> decltype(std::declval< decltype(generatorExpression())>().get())
Definition: catch2.hpp:4083
auto makeGenerators(GeneratorWrapper< T > &&generator, Gs &&... moreGenerators) -> Generators< T >
Definition: catch2.hpp:4061

◆ GENERATE_COPY

#define GENERATE_COPY (   ...)

◆ GENERATE_REF

#define GENERATE_REF (   ...)

◆ REQUIRE

#define REQUIRE (   ...)    INTERNAL_CATCH_TEST( "REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__ )

◆ REQUIRE_FALSE

#define REQUIRE_FALSE (   ...)    INTERNAL_CATCH_TEST( "REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )

◆ REQUIRE_THROWS

#define REQUIRE_THROWS (   ...)    INTERNAL_CATCH_THROWS( "REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ )

◆ REQUIRE_THROWS_AS

#define REQUIRE_THROWS_AS (   expr,
  exceptionType 
)    INTERNAL_CATCH_THROWS_AS( "REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr )

◆ REQUIRE_THROWS_WITH

#define REQUIRE_THROWS_WITH (   expr,
  matcher 
)    INTERNAL_CATCH_THROWS_STR_MATCHES( "REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr )

◆ REQUIRE_THROWS_MATCHES

#define REQUIRE_THROWS_MATCHES (   expr,
  exceptionType,
  matcher 
)    INTERNAL_CATCH_THROWS_MATCHES( "REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher, expr )

◆ REQUIRE_NOTHROW

#define REQUIRE_NOTHROW (   ...)    INTERNAL_CATCH_NO_THROW( "REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__ )

◆ CHECK

#define CHECK (   ...)    INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )

◆ CHECK_FALSE

#define CHECK_FALSE (   ...)    INTERNAL_CATCH_TEST( "CHECK_FALSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )

◆ CHECKED_IF

#define CHECKED_IF (   ...)    INTERNAL_CATCH_IF( "CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )

◆ CHECKED_ELSE

#define CHECKED_ELSE (   ...)    INTERNAL_CATCH_ELSE( "CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )

◆ CHECK_NOFAIL

#define CHECK_NOFAIL (   ...)    INTERNAL_CATCH_TEST( "CHECK_NOFAIL", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )

◆ CHECK_THROWS

#define CHECK_THROWS (   ...)    INTERNAL_CATCH_THROWS( "CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )

◆ CHECK_THROWS_AS

#define CHECK_THROWS_AS (   expr,
  exceptionType 
)    INTERNAL_CATCH_THROWS_AS( "CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr )

◆ CHECK_THROWS_WITH

#define CHECK_THROWS_WITH (   expr,
  matcher 
)    INTERNAL_CATCH_THROWS_STR_MATCHES( "CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr )

◆ CHECK_THROWS_MATCHES

#define CHECK_THROWS_MATCHES (   expr,
  exceptionType,
  matcher 
)    INTERNAL_CATCH_THROWS_MATCHES( "CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )

◆ CHECK_NOTHROW

#define CHECK_NOTHROW (   ...)    INTERNAL_CATCH_NO_THROW( "CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )

◆ CHECK_THAT

#define CHECK_THAT (   arg,
  matcher 
)    INTERNAL_CHECK_THAT( "CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg )

◆ REQUIRE_THAT

#define REQUIRE_THAT (   arg,
  matcher 
)    INTERNAL_CHECK_THAT( "REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg )

◆ INFO

#define INFO (   msg)    INTERNAL_CATCH_INFO( "INFO", msg )

◆ UNSCOPED_INFO

#define UNSCOPED_INFO (   msg)    INTERNAL_CATCH_UNSCOPED_INFO( "UNSCOPED_INFO", msg )

◆ WARN

#define WARN (   msg)    INTERNAL_CATCH_MSG( "WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )

◆ CAPTURE

#define CAPTURE (   ...)    INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CAPTURE",__VA_ARGS__ )

◆ TEST_CASE

#define TEST_CASE (   ...)    INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )

◆ TEST_CASE_METHOD

#define TEST_CASE_METHOD (   className,
  ... 
)    INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )

◆ METHOD_AS_TEST_CASE

#define METHOD_AS_TEST_CASE (   method,
  ... 
)    INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )

◆ REGISTER_TEST_CASE

#define REGISTER_TEST_CASE (   Function,
  ... 
)    INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )

◆ SECTION

#define SECTION (   ...)    INTERNAL_CATCH_SECTION( __VA_ARGS__ )

◆ DYNAMIC_SECTION

#define DYNAMIC_SECTION (   ...)    INTERNAL_CATCH_DYNAMIC_SECTION( __VA_ARGS__ )

◆ FAIL

#define FAIL (   ...)    INTERNAL_CATCH_MSG( "FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__ )

◆ FAIL_CHECK

#define FAIL_CHECK (   ...)    INTERNAL_CATCH_MSG( "FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )

◆ SUCCEED

#define SUCCEED (   ...)    INTERNAL_CATCH_MSG( "SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )

◆ ANON_TEST_CASE

#define ANON_TEST_CASE ( )    INTERNAL_CATCH_TESTCASE()

◆ TEMPLATE_TEST_CASE

#define TEMPLATE_TEST_CASE (   ...)    INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )

◆ TEMPLATE_TEST_CASE_SIG

#define TEMPLATE_TEST_CASE_SIG (   ...)    INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ )

◆ TEMPLATE_TEST_CASE_METHOD

#define TEMPLATE_TEST_CASE_METHOD (   className,
  ... 
)    INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )

◆ TEMPLATE_TEST_CASE_METHOD_SIG

#define TEMPLATE_TEST_CASE_METHOD_SIG (   className,
  ... 
)    INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ )

◆ TEMPLATE_PRODUCT_TEST_CASE

#define TEMPLATE_PRODUCT_TEST_CASE (   ...)    INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ )

◆ TEMPLATE_PRODUCT_TEST_CASE_SIG

#define TEMPLATE_PRODUCT_TEST_CASE_SIG (   ...)    INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ )

◆ TEMPLATE_PRODUCT_TEST_CASE_METHOD

#define TEMPLATE_PRODUCT_TEST_CASE_METHOD (   className,
  ... 
)    INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ )

◆ TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG

#define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG (   className,
  ... 
)    INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ )

◆ TEMPLATE_LIST_TEST_CASE

#define TEMPLATE_LIST_TEST_CASE (   ...)    INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(__VA_ARGS__)

◆ TEMPLATE_LIST_TEST_CASE_METHOD

#define TEMPLATE_LIST_TEST_CASE_METHOD (   className,
  ... 
)    INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, __VA_ARGS__ )

◆ STATIC_REQUIRE

#define STATIC_REQUIRE (   ...)    static_assert( __VA_ARGS__, #__VA_ARGS__ ); SUCCEED( #__VA_ARGS__ )

◆ STATIC_REQUIRE_FALSE

#define STATIC_REQUIRE_FALSE (   ...)    static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); SUCCEED( "!(" #__VA_ARGS__ ")" )

◆ CATCH_TRANSLATE_EXCEPTION

#define CATCH_TRANSLATE_EXCEPTION (   signature)    INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )

◆ SCENARIO

#define SCENARIO (   ...)    TEST_CASE( "Scenario: " __VA_ARGS__ )

◆ SCENARIO_METHOD

#define SCENARIO_METHOD (   className,
  ... 
)    INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )

◆ GIVEN

#define GIVEN (   desc)    INTERNAL_CATCH_DYNAMIC_SECTION( " Given: " << desc )

◆ AND_GIVEN

#define AND_GIVEN (   desc)    INTERNAL_CATCH_DYNAMIC_SECTION( "And given: " << desc )

◆ WHEN

#define WHEN (   desc)    INTERNAL_CATCH_DYNAMIC_SECTION( " When: " << desc )

◆ AND_WHEN

#define AND_WHEN (   desc)    INTERNAL_CATCH_DYNAMIC_SECTION( " And when: " << desc )

◆ THEN

#define THEN (   desc)    INTERNAL_CATCH_DYNAMIC_SECTION( " Then: " << desc )

◆ AND_THEN

#define AND_THEN (   desc)    INTERNAL_CATCH_DYNAMIC_SECTION( " And: " << desc )

Function Documentation

◆ operator<<()

std::ostream& operator<< ( std::ostream &  ,
Catch_global_namespace_dummy   
)

◆ operator""_catch_sr()

constexpr auto operator""_catch_sr ( char const *  rawChars,
std::size_t  size 
) -> Catch::StringRef
constexprnoexcept