Wire Sysio
Wire Sysion 1.0.0
Loading...
Searching...
No Matches
catch.hpp
Go to the documentation of this file.
1
/*
2
* Created by Phil on 22/10/2010.
3
* Copyright 2010 Two Blue Cubes Ltd
4
*
5
* Distributed under the Boost Software License, Version 1.0. (See accompanying
6
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7
*/
8
9
#ifndef TWOBLUECUBES_CATCH_HPP_INCLUDED
10
#define TWOBLUECUBES_CATCH_HPP_INCLUDED
11
12
#define CATCH_VERSION_MAJOR 2
13
#define CATCH_VERSION_MINOR 7
14
#define CATCH_VERSION_PATCH 2
15
16
#ifdef __clang__
17
# pragma clang system_header
18
#elif defined __GNUC__
19
# pragma GCC system_header
20
#endif
21
22
#include "
internal/catch_suppress_warnings.h
"
23
24
#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
25
# define CATCH_IMPL
26
# define CATCH_CONFIG_ALL_PARTS
27
#endif
28
29
// In the impl file, we want to have access to all parts of the headers
30
// Can also be used to sanely support PCHs
31
#if defined(CATCH_CONFIG_ALL_PARTS)
32
# define CATCH_CONFIG_EXTERNAL_INTERFACES
33
# if defined(CATCH_CONFIG_DISABLE_MATCHERS)
34
# undef CATCH_CONFIG_DISABLE_MATCHERS
35
# endif
36
# if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER)
37
# define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER
38
# endif
39
#endif
40
41
#if !defined(CATCH_CONFIG_IMPL_ONLY)
42
#include "
internal/catch_platform.h
"
43
44
#ifdef CATCH_IMPL
45
# ifndef CLARA_CONFIG_MAIN
46
# define CLARA_CONFIG_MAIN_NOT_DEFINED
47
# define CLARA_CONFIG_MAIN
48
# endif
49
#endif
50
51
#include "
internal/catch_user_interfaces.h
"
52
#include "
internal/catch_tag_alias_autoregistrar.h
"
53
#include "
internal/catch_test_registry.h
"
54
#include "
internal/catch_capture.hpp
"
55
#include "
internal/catch_section.h
"
56
#include "
internal/catch_benchmark.h
"
57
#include "
internal/catch_interfaces_exception.h
"
58
#include "
internal/catch_approx.h
"
59
#include "
internal/catch_compiler_capabilities.h
"
60
#include "
internal/catch_string_manip.h
"
61
62
#ifndef CATCH_CONFIG_DISABLE_MATCHERS
63
#include "
internal/catch_capture_matchers.h
"
64
#endif
65
#include "
internal/catch_generators.hpp
"
66
#include "
internal/catch_generators_generic.hpp
"
67
#include "
internal/catch_generators_specific.hpp
"
68
69
// These files are included here so the single_include script doesn't put them
70
// in the conditionally compiled sections
71
#include "
internal/catch_test_case_info.h
"
72
#include "
internal/catch_interfaces_runner.h
"
73
74
#ifdef __OBJC__
75
#include "
internal/catch_objc.hpp
"
76
#endif
77
78
#ifdef CATCH_CONFIG_EXTERNAL_INTERFACES
79
#include "
internal/catch_external_interfaces.h
"
80
#endif
81
82
#endif
// ! CATCH_CONFIG_IMPL_ONLY
83
84
#ifdef CATCH_IMPL
85
#include "
internal/catch_impl.hpp
"
86
#endif
87
88
#ifdef CATCH_CONFIG_MAIN
89
#include "
internal/catch_default_main.hpp
"
90
#endif
91
92
#if !defined(CATCH_CONFIG_IMPL_ONLY)
93
94
#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
95
# undef CLARA_CONFIG_MAIN
96
#endif
97
98
#if !defined(CATCH_CONFIG_DISABLE)
100
// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
101
#ifdef CATCH_CONFIG_PREFIX_ALL
102
103
#define CATCH_REQUIRE( ... ) INTERNAL_CATCH_TEST( "CATCH_REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__ )
104
#define CATCH_REQUIRE_FALSE( ... ) INTERNAL_CATCH_TEST( "CATCH_REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )
105
106
#define CATCH_REQUIRE_THROWS( ... ) INTERNAL_CATCH_THROWS( "CATCH_REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ )
107
#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CATCH_REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr )
108
#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CATCH_REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr )
109
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
110
#define CATCH_REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CATCH_REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher, expr )
111
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
112
#define CATCH_REQUIRE_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CATCH_REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__ )
113
114
#define CATCH_CHECK( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
115
#define CATCH_CHECK_FALSE( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK_FALSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )
116
#define CATCH_CHECKED_IF( ... ) INTERNAL_CATCH_IF( "CATCH_CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
117
#define CATCH_CHECKED_ELSE( ... ) INTERNAL_CATCH_ELSE( "CATCH_CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
118
#define CATCH_CHECK_NOFAIL( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK_NOFAIL", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )
119
120
#define CATCH_CHECK_THROWS( ... ) INTERNAL_CATCH_THROWS( "CATCH_CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
121
#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CATCH_CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr )
122
#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CATCH_CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr )
123
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
124
#define CATCH_CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CATCH_CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )
125
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
126
#define CATCH_CHECK_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CATCH_CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
127
128
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
129
#define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CATCH_CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg )
130
131
#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CATCH_REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg )
132
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
133
134
#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( "CATCH_INFO", msg )
135
#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( "CATCH_WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
136
#define CATCH_CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CATCH_CAPTURE",__VA_ARGS__ )
137
138
#define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
139
#define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
140
#define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
141
#define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
142
#define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
143
#define CATCH_DYNAMIC_SECTION( ... ) INTERNAL_CATCH_DYNAMIC_SECTION( __VA_ARGS__ )
144
#define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( "CATCH_FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__ )
145
#define CATCH_FAIL_CHECK( ... ) INTERNAL_CATCH_MSG( "CATCH_FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
146
#define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( "CATCH_SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
147
148
#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE()
149
150
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
151
#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )
152
#define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )
153
#define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ )
154
#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ )
155
#else
156
#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) )
157
#define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) )
158
#define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ ) )
159
#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ ) )
160
#endif
161
162
163
#if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE)
164
#define CATCH_STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__ , #__VA_ARGS__ ); CATCH_SUCCEED( #__VA_ARGS__ )
165
#define CATCH_STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); CATCH_SUCCEED( #__VA_ARGS__ )
166
#else
167
#define CATCH_STATIC_REQUIRE( ... ) CATCH_REQUIRE( __VA_ARGS__ )
168
#define CATCH_STATIC_REQUIRE_FALSE( ... ) CATCH_REQUIRE_FALSE( __VA_ARGS__ )
169
#endif
170
171
172
// "BDD-style" convenience wrappers
173
#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )
174
#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
175
#define CATCH_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Given: " << desc )
176
#define CATCH_AND_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( "And given: " << desc )
177
#define CATCH_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " When: " << desc )
178
#define CATCH_AND_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And when: " << desc )
179
#define CATCH_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Then: " << desc )
180
#define CATCH_AND_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And: " << desc )
181
182
// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
183
#else
184
185
#define REQUIRE( ... ) INTERNAL_CATCH_TEST( "REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__ )
186
#define REQUIRE_FALSE( ... ) INTERNAL_CATCH_TEST( "REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )
187
188
#define REQUIRE_THROWS( ... ) INTERNAL_CATCH_THROWS( "REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ )
189
#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr )
190
#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr )
191
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
192
#define REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher, expr )
193
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
194
#define REQUIRE_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__ )
195
196
#define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
197
#define CHECK_FALSE( ... ) INTERNAL_CATCH_TEST( "CHECK_FALSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__ )
198
#define CHECKED_IF( ... ) INTERNAL_CATCH_IF( "CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
199
#define CHECKED_ELSE( ... ) INTERNAL_CATCH_ELSE( "CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
200
#define CHECK_NOFAIL( ... ) INTERNAL_CATCH_TEST( "CHECK_NOFAIL", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ )
201
202
#define CHECK_THROWS( ... ) INTERNAL_CATCH_THROWS( "CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
203
#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr )
204
#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr )
205
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
206
#define CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr )
207
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
208
#define CHECK_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
209
210
211
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
212
#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg )
213
214
#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg )
215
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
216
217
#define INFO( msg ) INTERNAL_CATCH_INFO( "INFO", msg )
218
#define UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "UNSCOPED_INFO", msg )
219
#define WARN( msg ) INTERNAL_CATCH_MSG( "WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
220
#define CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CAPTURE",__VA_ARGS__ )
221
222
#define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
223
#define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
224
#define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
225
#define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
226
#define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
227
#define DYNAMIC_SECTION( ... ) INTERNAL_CATCH_DYNAMIC_SECTION( __VA_ARGS__ )
228
#define FAIL( ... ) INTERNAL_CATCH_MSG( "FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__ )
229
#define FAIL_CHECK( ... ) INTERNAL_CATCH_MSG( "FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
230
#define SUCCEED( ... ) INTERNAL_CATCH_MSG( "SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
231
#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE()
232
233
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
234
#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )
235
#define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )
236
#define TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ )
237
#define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ )
238
#else
239
#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) )
240
#define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) )
241
#define TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ ) )
242
#define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ ) )
243
#endif
244
245
246
#if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE)
247
#define STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__, #__VA_ARGS__ ); SUCCEED( #__VA_ARGS__ )
248
#define STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); SUCCEED( "!(" #__VA_ARGS__ ")" )
249
#else
250
#define STATIC_REQUIRE( ... ) REQUIRE( __VA_ARGS__ )
251
#define STATIC_REQUIRE_FALSE( ... ) REQUIRE_FALSE( __VA_ARGS__ )
252
#endif
253
254
#endif
255
256
#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
257
258
// "BDD-style" convenience wrappers
259
#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )
260
#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
261
262
#define GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Given: " << desc )
263
#define AND_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( "And given: " << desc )
264
#define WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " When: " << desc )
265
#define AND_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And when: " << desc )
266
#define THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Then: " << desc )
267
#define AND_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And: " << desc )
268
269
using
Catch::Detail::Approx
;
270
271
#else
// CATCH_CONFIG_DISABLE
272
274
// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
275
#ifdef CATCH_CONFIG_PREFIX_ALL
276
277
#define CATCH_REQUIRE( ... ) (void)(0)
278
#define CATCH_REQUIRE_FALSE( ... ) (void)(0)
279
280
#define CATCH_REQUIRE_THROWS( ... ) (void)(0)
281
#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) (void)(0)
282
#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) (void)(0)
283
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
284
#define CATCH_REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0)
285
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
286
#define CATCH_REQUIRE_NOTHROW( ... ) (void)(0)
287
288
#define CATCH_CHECK( ... ) (void)(0)
289
#define CATCH_CHECK_FALSE( ... ) (void)(0)
290
#define CATCH_CHECKED_IF( ... ) if (__VA_ARGS__)
291
#define CATCH_CHECKED_ELSE( ... ) if (!(__VA_ARGS__))
292
#define CATCH_CHECK_NOFAIL( ... ) (void)(0)
293
294
#define CATCH_CHECK_THROWS( ... ) (void)(0)
295
#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) (void)(0)
296
#define CATCH_CHECK_THROWS_WITH( expr, matcher ) (void)(0)
297
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
298
#define CATCH_CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0)
299
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
300
#define CATCH_CHECK_NOTHROW( ... ) (void)(0)
301
302
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
303
#define CATCH_CHECK_THAT( arg, matcher ) (void)(0)
304
305
#define CATCH_REQUIRE_THAT( arg, matcher ) (void)(0)
306
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
307
308
#define CATCH_INFO( msg ) (void)(0)
309
#define CATCH_WARN( msg ) (void)(0)
310
#define CATCH_CAPTURE( msg ) (void)(0)
311
312
#define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
313
#define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
314
#define CATCH_METHOD_AS_TEST_CASE( method, ... )
315
#define CATCH_REGISTER_TEST_CASE( Function, ... ) (void)(0)
316
#define CATCH_SECTION( ... )
317
#define CATCH_DYNAMIC_SECTION( ... )
318
#define CATCH_FAIL( ... ) (void)(0)
319
#define CATCH_FAIL_CHECK( ... ) (void)(0)
320
#define CATCH_SUCCEED( ... ) (void)(0)
321
322
#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
323
324
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
325
#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) )
326
#define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), className )
327
#define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )
328
#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )
329
#else
330
#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) ) )
331
#define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), className ) )
332
#define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ )
333
#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )
334
#endif
335
336
// "BDD-style" convenience wrappers
337
#define CATCH_SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
338
#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), className )
339
#define CATCH_GIVEN( desc )
340
#define CATCH_AND_GIVEN( desc )
341
#define CATCH_WHEN( desc )
342
#define CATCH_AND_WHEN( desc )
343
#define CATCH_THEN( desc )
344
#define CATCH_AND_THEN( desc )
345
346
#define CATCH_STATIC_REQUIRE( ... ) (void)(0)
347
#define CATCH_STATIC_REQUIRE_FALSE( ... ) (void)(0)
348
349
// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
350
#else
351
352
#define REQUIRE( ... ) (void)(0)
353
#define REQUIRE_FALSE( ... ) (void)(0)
354
355
#define REQUIRE_THROWS( ... ) (void)(0)
356
#define REQUIRE_THROWS_AS( expr, exceptionType ) (void)(0)
357
#define REQUIRE_THROWS_WITH( expr, matcher ) (void)(0)
358
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
359
#define REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0)
360
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
361
#define REQUIRE_NOTHROW( ... ) (void)(0)
362
363
#define CHECK( ... ) (void)(0)
364
#define CHECK_FALSE( ... ) (void)(0)
365
#define CHECKED_IF( ... ) if (__VA_ARGS__)
366
#define CHECKED_ELSE( ... ) if (!(__VA_ARGS__))
367
#define CHECK_NOFAIL( ... ) (void)(0)
368
369
#define CHECK_THROWS( ... ) (void)(0)
370
#define CHECK_THROWS_AS( expr, exceptionType ) (void)(0)
371
#define CHECK_THROWS_WITH( expr, matcher ) (void)(0)
372
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
373
#define CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0)
374
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
375
#define CHECK_NOTHROW( ... ) (void)(0)
376
377
378
#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
379
#define CHECK_THAT( arg, matcher ) (void)(0)
380
381
#define REQUIRE_THAT( arg, matcher ) (void)(0)
382
#endif
// CATCH_CONFIG_DISABLE_MATCHERS
383
384
#define INFO( msg ) (void)(0)
385
#define WARN( msg ) (void)(0)
386
#define CAPTURE( msg ) (void)(0)
387
388
#define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
389
#define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
390
#define METHOD_AS_TEST_CASE( method, ... )
391
#define REGISTER_TEST_CASE( Function, ... ) (void)(0)
392
#define SECTION( ... )
393
#define DYNAMIC_SECTION( ... )
394
#define FAIL( ... ) (void)(0)
395
#define FAIL_CHECK( ... ) (void)(0)
396
#define SUCCEED( ... ) (void)(0)
397
#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
398
399
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
400
#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) )
401
#define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), className )
402
#define TEMPLATE_PRODUCT_TEST_CASE( ... ) TEMPLATE_TEST_CASE( __VA_ARGS__ )
403
#define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )
404
#else
405
#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) ) )
406
#define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), className ) )
407
#define TEMPLATE_PRODUCT_TEST_CASE( ... ) TEMPLATE_TEST_CASE( __VA_ARGS__ )
408
#define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )
409
#endif
410
411
#define STATIC_REQUIRE( ... ) (void)(0)
412
#define STATIC_REQUIRE_FALSE( ... ) (void)(0)
413
414
#endif
415
416
#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )
417
418
// "BDD-style" convenience wrappers
419
#define SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) )
420
#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), className )
421
422
#define GIVEN( desc )
423
#define AND_GIVEN( desc )
424
#define WHEN( desc )
425
#define AND_WHEN( desc )
426
#define THEN( desc )
427
#define AND_THEN( desc )
428
429
using
Catch::Detail::Approx
;
430
431
432
#endif
433
434
#endif
// ! CATCH_CONFIG_IMPL_ONLY
435
436
#include "
internal/catch_reenable_warnings.h
"
437
438
#endif
// TWOBLUECUBES_CATCH_HPP_INCLUDED
catch_approx.h
catch_benchmark.h
catch_capture.hpp
catch_capture_matchers.h
catch_compiler_capabilities.h
catch_default_main.hpp
catch_external_interfaces.h
catch_generators.hpp
catch_generators_generic.hpp
catch_generators_specific.hpp
catch_impl.hpp
catch_interfaces_exception.h
catch_interfaces_runner.h
catch_objc.hpp
catch_platform.h
catch_reenable_warnings.h
catch_section.h
catch_string_manip.h
catch_suppress_warnings.h
catch_tag_alias_autoregistrar.h
catch_test_case_info.h
catch_test_registry.h
catch_user_interfaces.h
Catch::Detail::Approx
Definition
catch.hpp:2739
libraries
sys-vm
external
Catch2
include
catch.hpp
Generated by
1.12.0