Martin Hořeňovský
3382312bd8
Remove obsoleted SCOPED_MSG
and SCOPED_CAPTURE
...
Standard `MSG` and `CAPTURE` behave the same way these used to,
and are recommended instead.
2017-08-10 17:06:32 +02:00
Phil Nash
ee9b19efd3
Moved matcher-based capture macros into their own file
...
- this file excluded from the CATCH_CONFIG_DISABLE_MATCHERS path.
- matchers are always compiled in to the impl file
- _THROWS_WITH macros are still available with matchers disabled - but only the ones that take a string
- tests that use matchers have #ifdefs, so the whole SelfTest project can compile with matchers disable.
2017-08-09 12:10:14 +01:00
Phil Nash
e658bacb04
Refactored how FAST_COMPILE affects internal test macros (less duplication)
2017-08-07 00:09:54 +01:00
Phil Nash
a9b6813ad9
First draft of (experimental) benchmarking support
2017-08-04 19:23:30 +01:00
Martin Hořeňovský
d08e31d89e
Fix inverted CATCH_CONFIG_DISABLE_MATCHERS toggle
2017-07-29 08:43:32 +02:00
Martin Hořeňovský
0ca4cfb743
Introduce compile time toggle to remove Matchers from TU
...
The toggle is `CATCH_CONFIG_DISABLE_MATCHERS` and the only use is
to speed up compilation of small TUs. For large ones it is likely
insignificant, because the speed up is constant relative to
number of tests/assertions in TU.
2017-07-28 21:34:34 +02:00
Martin Hořeňovský
35c1301bd5
Fix missing CATCH_ prefixed macros
2017-07-28 21:04:18 +02:00
Martin Hořeňovský
33fd54a673
Split Option<T> and TagAlias definitions away from the main include path
2017-07-27 11:55:30 +02:00
Phil Nash
f193698fb3
Removed all (that I could find) redundant second macro args to TEST_CASE and SECTION
...
- now we can rely on variadic macros
2017-07-13 09:20:37 +01:00
Martin Hořeňovský
91c1556078
Moved Catch NotImplementedException out of the common include path
...
We could probably toss it away completely, currently it is used
only by TeamCity reporter.
2017-07-12 15:05:01 +02:00
Martin Hořeňovský
4332b84c9b
Moved leak detector to its own file
2017-07-12 15:03:52 +02:00
Martin Hořeňovský
9c318af987
Remove obsolete GENERATE macro
2017-07-12 14:46:49 +02:00
Martin Hořeňovský
fae0fa4ec1
Merge branch 'dev-second-string-argument-removal' into dev-modernize
...
It is no longer true that an assertion macro has either 1 or 2 args,
so...
2017-06-26 20:48:41 +02:00
Martin Hořeňovský
950cae9040
Added new assertion macros: *_THROWS_WITH
...
It combines `*_THROWS_AS` and `*_THROWS_WITH` macros, so that the
exception type matches expectetations and its contents match a specific
matcher.
2017-06-05 18:40:50 +02:00
Martin Hořeňovský
1e16be0b9e
Purge deprecated generators
2017-06-05 16:49:10 +02:00
Martin Hořeňovský
377c9a746d
Cosmetic fixes (whitespace and spelling)
2017-05-27 14:42:54 +02:00
Martin Hořeňovský
589c40077b
Typo fix
...
Somehow I made that in 5ffc8a84cd
without noticing
2017-05-16 13:51:17 +02:00
Martin Hořeňovský
33ed1773f4
Reworked stringification layer, removed Catch::toString
...
Now the order of stringification checks is
1) StringMaker specialization
2) operator<<
toString overloads and specializations have been removed.
2017-05-02 23:51:03 +02:00
Martin Hořeňovský
40130e59b4
Fix order of arguments in CATCH_FAIL macro
2017-04-28 18:33:52 +02:00
Martin Hořeňovský
5ffc8a84cd
Fix order of arguments in CATCH_FAIL and nonvariadic INTERNAL_CATCH_MSG
...
Fixes #896
2017-04-28 18:30:04 +02:00
Phil Nash
602b62f037
Removed legacy reporter support
2017-04-25 21:56:14 +01:00
Martin Hořeňovský
e1bca7017d
Most of Assertion macros are now variadic
...
This means that `REQUIRE(std::vector<int>{1, 2} == std::vector<int>{1,
2});` works as expected.
Note that assertion macros taking more than 1 argument are currently not
variadic, because variadic args have to come last, which would make the
interface of these ugly: `REQUIRE_THROWS_AS(std::exception const&, ....
)`
2017-04-25 20:20:46 +02:00
Martin Hořeňovský
71df66365e
Gutted catch_compiler_capabilities
...
All C++11 toggles are now removed. What is left is either platform
specific (POSIX_SIGNALS, WINDOWS_SEH), or possibly still needed
(USE_COUNTER).
If current CLion is compatible with `__COUNTER__`, then we should also
force `__COUNTER__` usage.
Changed
* CATCH_AUTO_PTR -> std::unique_ptr
* CATCH_OVERRIDE -> override
* CATCH_NULL -> nullptr
* CATCH_NOEXCEPT -> noexcept
* CATCH_NOEXCEPT_IS -> noexcept
Removed
* CATCH_CONFIG_CPP11_UNIQUE_PTR
* CATCH_CONFIG_CPP11_SHUFFLE
* CATCH_CONFIG_CPP11_TYPE_TRAITS
* CATCH_CONFIG_CPP11_OVERRIDE
* CATCH_CONFIG_CPP11_LONG_LONG
* CATCH_CONFIG_CPP11_TUPLE
* CATCH_CONFIG_CPP11_IS_ENUM
* CATCH_CONFIG_CPP11_GENERATED_METHODS
* CATCH_CONFIG_CPP11_NOEXCEPT
* CATCH_CONFIG_CPP11_NULLPTR
* CATCH_CONFIG_VARIADIC_MACROS
2017-04-25 12:43:19 +02:00
Phil Nash
f3ec843ba6
Changed all internal forwarding macro usages to put macro name as first argument
...
(and ‘expression’, if any, last)
This is a first step towards allowing expression arguments to become variadic
2017-03-21 13:23:35 +00:00
Martin Hořeňovský
7a8a0205b4
CATCH_CONFIG_FAST_COMPILE now disables trys in REQUIRE*
...
This seems to give about 15% speedup when compiling tests using GCC.
The tradeoff is that under certain circumstances, there is a chance for
false negative result, when the expression under test throws exception
and the test code catches it before it gets to the test runner.
Example:
``` cpp
TEST_CASE("False negative") {
try {
REQUIRE(throws() == "");
} catch (...) {}
}
```
This test case will succeed, reporting no assertions checked, instead of
failing as it would with `CATCH_CONFIG_FAST_COMPILE` disabled. However,
just removing the try-catch block inside client's code will fix this, so
it is worthwhile.
This change does not apply to CHECK* macros, because these are currently
specified as continuing on exception and thus need the local try-catch
to work as intended.
2017-03-17 13:21:40 +01:00
Phil Nash
5dd0639520
Added FAIL_CHECK
...
Works like FAIL, but does not abort test.
As proposed in #765
2017-03-08 15:42:11 +00:00
Martin Hořeňovský
be4f6ab8e1
Change reporting of CAPTURE'd variables
...
Info is not changed, intentionally.
Closes #639
2017-03-03 14:34:50 +01:00
Phil Nash
10dfca34ac
Added first vector matchers (Contains and Equals)
2017-02-21 16:05:04 +00:00
philsquared
b1835e1de9
Moved WIndows leak detector code out of main()
2017-02-17 23:43:31 +00:00
Phil Nash
1400127d6f
Extracted string matchers impl into cpp that is only compiled into main TU
2017-02-14 09:16:54 +00:00
Phil Nash
7fed25ad1f
New Matchers implementation
...
- simpler
- less templates and machinery
- no cloning, copying or unnecessary heap allocations
- better factored
2017-02-14 09:16:54 +00:00
jbo-ableton
e12fc4aca0
Fix missing CATCH_ for CHECK_THAT in prefixed macro version
2017-01-15 22:11:43 +01:00
Kevin Ushey
7d2668fa15
add missing argument to CATCH_CHECK_THROWS ( closes #602 )
2017-01-07 12:16:06 +01:00
Phil Nash
aca16a0f99
Fixed CATCH_REGISTER_TEST_CASE too
2016-01-22 07:50:10 +00:00
Phil Nash
f294c98472
Fixed REGISTER_TEST_CASE for VS2013 (hopefully)
...
- see #549
2016-01-05 08:19:16 +00:00
Phil Nash
2106d82881
Fixed non-variadic version of REGISTER_TEST_CASE
2015-12-09 18:24:29 +00:00
Phil Nash
0e64973f55
Added support for manually registering test functions.
...
As discussed in #421
2015-11-20 16:58:16 +00:00
Phil Nash
6de135c63a
Given, When, Then prefixes are now std::strings
...
(and so can be prepended to std::strings themselves)
see #455
2015-07-22 18:07:28 +01:00
Phil Nash
72868920bb
Exception message assertions now work with matchers
2015-07-15 23:02:25 +01:00
Phil Nash
85de743d70
Added _THROWS_WITH macros
...
- asserts on exception message
2015-07-13 06:34:41 +01:00
Phil Nash
fc63b020c5
suppressed some more warnings
2015-05-21 06:15:53 +01:00
Phil Nash
db0421e840
First commit of (in progress) TeamCity reporter
...
Should run but is not complete
2014-12-19 17:52:33 +00:00
James Wilkinson
63005a1d89
Added SCENARIO_METHOD for BDD testing with fixtures.
2014-07-10 10:22:20 +01:00
Phil Nash
1d210ebd37
Tag aliases feature
2014-06-30 07:33:17 +01:00
Phil Nash
be9fe76101
Renamed ShouldNegate to FalseTest
2014-05-29 08:00:20 +01:00
Phil Nash
9438a03d5b
Big assertion capture refactoring.
...
- moved as much logic out of the macros as possible
- moved most logic into new ResultBuilder class, which wraps ExpressionResultBuilder (may take it over next), subsumes ResultAction and also takes place of ExpressionDecomposer.
This introduces many SRP violations - but all in the name of minimising macro logic!
2014-05-28 18:53:01 +01:00
Phil Nash
3bdc97d8ad
Suppressed a load of warnings
2014-05-19 18:57:14 +01:00
Phil Nash
5ce900a532
Removed some #pragmas that have been causing problems for now
2014-05-04 09:16:32 +01:00
Phil Nash
9f1e054a42
Suppress some more warnings
2014-05-01 07:03:06 +01:00
Phil Nash
f9df35b12b
Fixed instance of Clara::_ placeholder when using CATCH_CONFIG_RUNNER
2014-03-10 18:02:18 +00:00
Phil Nash
9abb27676d
Fix problem (hopefully) with single source definitions from Clara
...
- define CLARA_CONFIG_MAIN in the right place
2014-03-06 21:53:34 +00:00
Phil Nash
557b3bdbe3
Made SUCCESS variadic too (optional stream)
2013-12-14 23:16:03 +00:00
Phil Nash
274ed3ea76
Allow FAIL() to be empty
2013-12-12 23:02:31 +00:00
Phil Nash
c4a089c12b
Refactored a lot of code from headers into impl headers only compiled into one TU
...
- also added noimpl option to single header script - which only generates the non impl code
2013-12-03 18:52:41 +00:00
Phil Nash
b5fd5a6496
INFO and CAPTURE are now scoped
...
- SCOPED_INFO and SCOPED_CAPTURE are now just aliases
2013-06-28 17:09:57 +01:00
Phil Nash
597ed1f79d
handle TEST_CASE_METHOD macro consistently
...
- internally define INTERNAL_CATCH_TEST_CASE_METHOD
2013-05-14 19:31:21 +01:00
Phil Nash
bf37e6879a
Removed use of compiler specific techniques for denoting non-returning functions
...
- use if( Catch::isTrue( true) ) to guard throws instead
2013-04-23 20:52:49 +01:00
Phil Nash
4dd3f68dd9
Compiler capabilities clean-up
...
- renamed CATCH_SFINAE -> CATCH_CONFIG_SFINAE
- moved variadic macros detection into catch_compiler_capabilities.h
2013-04-22 08:19:17 +01:00
Phil Nash
1c03b4a363
Exclude VS2005 from using variadic macros
...
- due to issues raised in https://groups.google.com/forum/?fromgroups=#!topic/catch-forum/VGfNtNXjHXQ
2013-04-09 08:19:04 +01:00
Phil Nash
15fd032608
Use new line wrapper to show test case list, with tags, in columns
2013-03-28 22:13:31 +00:00
Phil Nash
444f4ddc60
Variadics support for BDD macros (scenarios)
2013-03-16 20:39:19 +00:00
Phil Nash
c0b698073e
Initial support for variadic macros
2013-03-16 20:18:52 +00:00
Phil Nash
37186a1d04
Added BDD macros
...
(Also includes regenerated files from previous commits)
2013-03-13 12:19:30 +00:00
Phil Nash
207b27b3c5
Changed the way info messages are handled.
...
This fixes issue with SCOPED_INFO and makes output more readable.
Needs some refactoring.
2013-02-02 19:58:04 +00:00
Phil Nash
8255acf88f
IStreamingReporter is now the default. Use REGISTER_LEGACY_REPORTER to register… you guessed it: legacy reporters
...
The built-in reporters are still legacy at the moment.
2012-11-30 19:29:03 +00:00
Phil Nash
7717c29072
Implemented CHECK_NOFAIL
...
Previous commit missed some files
2012-11-13 09:45:29 +00:00
Phil Nash
d539da9030
Implemented CHECK_NO_FAIL
2012-11-13 09:44:52 +00:00
Phil Nash
b2ef998825
Changed shouldNegate boolean to use part of ResultDisposition enum
2012-11-10 10:35:09 +00:00
Phil Nash
1af13dba97
Changed StopOnFailure boolean to an enum
2012-11-10 10:20:08 +00:00
Phil Nash
778f9c4fc7
Removed "no-" from Wno-global-constructors when disabling
2012-10-30 09:09:30 +00:00
Phil Nash
e04e74f896
More AssertionResult refactoring
2012-10-24 21:59:47 +01:00
Phil Nash
803f6b7e4b
Added SCOPED_CAPTURE
2012-10-04 08:14:48 +01:00
Phil Nash
74d1d31997
Added CATCH_ version of SUCCEED macro
2012-08-31 18:37:47 +01:00
Phil Nash
a70fbe3c1a
Completed NoAssertions warning implementation
2012-08-31 08:10:36 +01:00
Phil Nash
cda21492a8
Conditionally compile clang pragmas
2012-08-16 18:47:41 +01:00
Phil Nash
ddfe963623
Split imll from TestCaseInfo
2012-08-14 19:30:30 +01:00
Phil Nash
a695eb9006
Builds almost completely cleanly with -WEverything in LLVM
2012-08-13 07:46:10 +01:00
Phil Nash
1091ca81e6
First cut of StaticRegistries - separate from Context
2012-08-06 20:16:53 +01:00
Phil Nash
46bcd4b2b7
Added ability to specify if macros should be prefixed with CATCH_
2012-07-20 18:43:48 +01:00
Phil Nash
0f9c551d4d
Moved catch_interfaces_runner.hpp out of conditionally compiled section
2012-06-02 23:12:42 +01:00
Phil Nash
1787da54a7
Reinstated #include that broke single include
2012-05-22 22:21:17 +01:00
Phil Nash
371db8b42f
Context methods are non-static - accessed via interface
...
This is a move towards allowing multiple contexts - with the concept of a (possibly thread local) "current" context
2012-05-21 18:52:09 +01:00
Phil Nash
ee18b8c507
Reformatting
2012-05-16 15:02:51 +01:00
Phil Nash
5ec53b2788
renamed hub -> context
...
(also did some reformatting)
2012-05-10 07:58:48 +01:00
Phil Nash
e0dd4a5469
Sanitised some comments
2012-05-09 19:37:14 +01:00
Phil Nash
a6a40b3ba9
Added a handful of "built-in" matchers
2012-03-04 20:10:36 +00:00
Phil Nash
eca5637c58
First cut of Matcher support
2012-03-04 11:14:21 +00:00
Phil Nash
a162e22fa3
Added CHECKED_IF and CHECKED_ELSE
2012-02-10 08:30:13 +00:00
Phil Nash
8152825e9f
Fixed Obj-C related #include ordering
2011-08-15 09:06:31 +01:00
Phil Nash
8350ef6366
Re-ordered Obj-C headers to fix dependency issue
2011-08-12 18:52:10 +01:00
Phil Nash
1adebefb50
Fixed tests with string literal on lhs
2011-06-29 19:22:56 +01:00
Phil Nash
48112c2700
Fixed a potential ordering issue with output streambufs
2011-05-31 18:47:30 +01:00
Phil Nash
89d1e6c4f1
Tweaks to allow headers to be glued together.
...
Added Python script to generate single header.
Added new XCode project that runs self test against single header
2011-05-24 08:23:02 +01:00
Phil Nash
d7c203c3e9
Factored Approx out into own file
2011-04-28 08:03:28 +01:00
Phil Nash
95419e935c
Merges objc top level headers into main headers (using #ifdef __OBJC__)
2011-04-26 19:00:25 +01:00
Phil Nash
823ea3efd4
Re-org
2011-04-26 08:32:40 +01:00