Commit Graph

1652 Commits

Author SHA1 Message Date
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
Phil Nash be0fc60c07 Updated version number for v2 development and removed single include (for now). 2017-04-25 14:43:13 +00:00
Phil Nash a0ada2e935 v1.9.3 2017-04-25 14:23:06 +00:00
Phil Nash e4694f58da Removed errant uses of uint64_t
fixes #894
2017-04-25 14:15:59 +00:00
Phil Nash 79650e44f4 Removed more C++98/03 compatibility 2017-04-25 12:40:52 +01:00
Phil Nash 5c8ea03cc8 Removed debug break support for PowerPC Macs 2017-04-25 12:27:26 +01:00
Phil Nash 242022460d Use std::chrono for Timer to eliminate platform dependency 2017-04-25 12:24:34 +01:00
Phil Nash 67005d290c Removed more redundant compatibility stuff from timer 2017-04-25 12:13:16 +01: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 1f3ba8a0b6 Converted (almost) all for-loops with iterators or indices to range-based 2017-04-25 11:07:02 +01:00
Martin Hořeňovský 6a09425de1 Remove C++98 backcompat from evaluate 2017-04-25 11:28:40 +02:00
Martin Hořeňovský c6e5738d54 Remove c++98 backcompat from timer 2017-04-25 11:25:49 +02:00
Martin Hořeňovský c6980ec2d8 Remove C++98 backcompat from toString 2017-04-25 11:21:22 +02:00
Martin Hořeňovský 7c900660ef Removed superfluous reimplementation of type traits 2017-04-25 11:19:01 +02:00
Martin Hořeňovský 2fdd81a33f Removed C++98 backcompat from Approx
Now it always uses type traits to work with all types convertible to
double
2017-04-25 11:11:26 +02:00
Martin Hořeňovský fc7f0a02b8 v1.9.2 2017-04-25 11:08:02 +02:00
Phil Nash 211b330346 Don’t unconditionally #include <stdint.h> (as earlier MSVC don’t have it) 2017-04-25 08:43:14 +01:00
Phil Nash d36fe214a6 Further tweaked alignment hack for Option 2017-04-25 08:38:25 +01:00
Martin Hořeňovský a34c053f0a All of Approx's member functions now accept strong typedefs
Previously `Approx::operator()`, `Approx::epsilon`, `Approx::margin` and
`Approx::scale` didn't.

Closes #888
2017-04-24 22:01:45 +02:00
Phil Nash eedcc82d31 Tweaked storage alignment "workaround" a bit more in Option. 2017-04-21 07:19:39 +01:00
Martin Hořeňovský b95163bd3a Don't enable POSIX signals under QNX
Fixes #889
2017-04-20 21:02:25 +02:00
Phil Nash 2809be87cc “fixed” alignment in Option 2017-04-20 14:39:07 +01:00
Phil Nash e5c5a636a9 junit reporter does not count exceptions as failures if ok-to-fail 2017-04-11 15:47:42 +01:00
Phil Nash 2bf30e9e5a Use (locally defined) UInt64 instead of uint64_t
- typedefs long long for MSVC
- typedefs uint64_t otherwise

Should probably do finer grained compiler checking - but this should at least be better than what was there before
2017-04-11 15:06:25 +01:00
Martin Hořeňovský c6990cdf91 v1.9.1 release 2017-04-09 21:25:20 +02:00
Martin Hořeňovský da8786b8fd Unexpected exception are no longer ignored by default
What an embarassing bug, I'll have to look into why it wasn't caught by
any of Catch's self-tests.

Fixes #885 and closes #887 (duplicate)
2017-04-09 21:20:58 +02:00
Martin Hořeňovský 1b03c5ab6a v1.9.0 release 2017-04-07 22:56:36 +02:00
Phil Nash 29d26d3179 Commented out unused argument 2017-04-07 11:36:54 +01:00
Phil Nash ca764ec8d9 TeamCity reporter “ignores” failures in tests marked “ok to fail”
- also don’t report hidden/ not-selected tests
2017-04-07 11:15:37 +01:00
Martin Hořeňovský 8f85d08e9f Give up on _Pragma for gcc, force disable Wparentheses in all TUs 2017-04-05 21:37:27 +02:00
Sergey Semushin 94425ad59b Add opt-in c++11 stream insertable check. (#877)
* Add opt-in c++11 stream insertable check.

To opt-in, define CATCH_CONFIG_CPP11_STREAM_INSERTABLE_CHECK.

Opt-in fixes #872 and should fix #757 as well.
2017-04-05 09:53:10 +02:00
Martin Hořeňovský 0354d50278 Added templated constructor to C++11 Approx
When using C++11, comparison operators are already templated to take
anything that can be explicitly converted to double, but constructor
took only doubles. This lead to warnings when an `Approx` was
constructed from floats, which was problematic for some users.

Since just adding float constructor would be a large breaking change, as
suddenly `Approx( 1 )` would become ambiguous, I added a templated
constructor that will take anything that is explicitly convertible to
double. This has the added benefit of allowing constructing `Approx`
instances from instances of strong typedefs, ie allowing
`calculated_temp == Approx( known_temp)`.

Closes #873
2017-04-04 15:19:15 +02:00
Martin Hořeňovský cdd83c2e15 Fmt and tag fixup for #876
Github wouldn't let me push to the PR, probably because it was made from
fork of a fork...
2017-04-04 11:31:13 +02:00
dvirtz 9a07dde16d print messages when unexpected exceptions are thrown 2017-04-04 11:27:19 +02:00
Martin Hořeňovský 6e091d3991 Reset the UnexpectedException report state 2017-04-03 11:48:50 +02:00
Martin Hořeňovský 95d85fb186 Fixed up CATCH_CONFIG_FAST_COMPILE for REQUIREs
Unexpected exceptions no longer cause abort and there should be no more
potential for false negatives.

The trade-off now is that exceptions are no longer translated.
2017-04-03 11:36:55 +02:00
Martin Hořeňovský 4fe2432e05 Rework of REQUIRE* changes in CATCH_CONFIG_FAST_COMPILE
`ResultBuilder`s destructor now checks for exceptions, preventing false
negatives. The speedup should remain the same give or take a tiny bit.
2017-03-29 21:12:06 +02:00
Martin Hořeňovský c3a41e26a7 Suppress -Wexit-time-destructors in Catch code
This is another warning that follows test macros, making it painful to
suppress without leaking outside. Luckily clang's `_Pragma`
implementation works.

Should fix #308
2017-03-29 20:30:59 +02:00
Martin Hořeňovský f23b6b8b85 Don't sanitize exception type in REQUIRE_THROWS_AS
Effectively a revert of previous commit, fixing #542, where this was
added to stop linters complaining about `REQUIRE_THROWS_AS` used like
`REQUIRE_THROWS_AS(expr, std::exception);`, which would be slicing the
caught exception. Now it is user's responsibility to pass us proper
exception type.

Closes #833 which wanted to add `typename`, so that the construct works
in a template, but that would not work with MSVC and older GCC's, as
having `typename` outside of a template is allowed only from C++11
onward.
2017-03-23 21:11:21 +01:00
Martin Hořeňovský 4597b43912 Throw instead of calling exit in RegistrarForTagAliases constructor
Caries a problem vis-a-vis Windows, just like previous commit, but that
can be fixed later on.

Closes #866
2017-03-22 18:40:07 +01:00
Martin Hořeňovský f64d914bff Throw instead of calling exit in enforceNotReservedTag
Closes #865
2017-03-22 17:53:22 +01:00
Martin Hořeňovský d07999ddff Version struct now uses char* for holding branch name
Since the info is constant, and the only use is to write it out during
runtime, there is no need for `std::string`.
2017-03-22 17:45:36 +01:00
Kevin Ushey e04dc5105b use inline 'libraryVersion()' function (closes #858) 2017-03-22 15:51:02 +01: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ý 55ed17f97b Removed stray define 2017-03-20 10:53:32 +01: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
Mickey Rose 4dc06bdb70 Use bulk vector::insert rather than back_inserter 2017-03-15 15:19:38 +00:00
Phil Nash 4ec8d53e91 Tag Alias registry is part of registry hub instead of it’s own singleton
- should now be cleaned up properly
2017-03-15 09:45:37 +00:00
Kevin Wojniak e8b31108d6 Fix Catch::toString() linker error when main() is compiled as C++
Fixes #278
2017-03-14 11:54:14 -07:00
Martin Hořeňovský 0c015aa887 v1.8.2 release 2017-03-13 21:29:30 +01:00
Phil Nash 0afd52b98d Fix Objective-C Matchers
Fixes #854
2017-03-13 15:40:21 +00:00
Phil Nash 38b05f1400 Don’t assume first CL arg (exe name) is present
Fixes #729
2017-03-13 11:00:58 +00:00
Phil Nash db9866677e Don’t ref past end of string
fixes #830
2017-03-13 10:22:02 +00:00
Phil Nash 4101ff314a #include <ctype> for std::to lower 2017-03-10 19:25:00 +00:00
Phil Nash e4a25ad5ff Added CATCH_REGISTER_LISTENER without the INTERNAL_ prefix 2017-03-10 19:15:03 +00:00
Phil Nash 5d6c744d38 Qualified std::tolower in Clara.
Fixes #543
2017-03-10 18:38:52 +00: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ý ace70407a2 Add tests for #835
Also add ErrnoGuard before `isatty` call, because apparently it can set
errno to 25 (ENOTTY).
2017-03-06 22:07:33 +01:00
Martin Hořeňovský 613e1466f9 Save errno before using sprintf, ifstream.
std::ifstream in libstdc++ contains a bug, where it sets errno to zero.
To work around it, we manually save the errno before using std::ifstream
in debugger check, and reset it after we are done.

We also preventively save errno before using sprintf.

Fixes #835
2017-03-06 21:51:22 +01:00
Alex Glyde d8f45cd5f1 changing tabs to spaces 2017-03-06 10:55:00 -05:00
Alex Glyde 3afd077b55 teamcity reporter should time durations explicitly 2017-03-06 10:35:03 -05:00
Martin Hořeňovský e95bf48445 Take std::string by const-ref where possible
Most places already do, this brings over some forgotten places.

Also close #842
2017-03-06 13:16:43 +01:00
Phil Nash 041498b221 Fixed unintentional tabs 2017-03-06 09:23:31 +00:00
philsquared d5a5883a10 Fixed mssing virtual destructor warnings
In Visual Studio with warning 4265 enabled
Closes #844
2017-03-06 08:59:52 +00:00
Phil Nash f9db24a824 Refactored console reporter include logic to match Xml Reporter’s 2017-03-03 14:19:41 +00:00
Phil Nash 9bee606dd6 Tweaked Xml Reporter to follow same success/ info behaviour as Console reporter 2017-03-03 14:12:47 +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
Martin Hořeňovský cd6de9cd34 Don't reconstruct expression on encountering fatal error
In some cases, like when given

```cpp
std::vector<char>* str =
reinterpret_cast<std::vector<char>*>(0x1234458);
CHECK(*str == std::vector<char>());
```

reconstructing the expression to report it would cause another fatal
error. Instead we just put together an AssertionResult without
reconstructing the expression fully.

This should fully fix #810
2017-03-02 18:18:28 +01:00
Martin Hořeňovský 40f6a5b8a4 Added duration reporting to compact reporter
Also made the duration formatting code available to all reporters.

Closes #780
2017-03-02 16:16:17 +01:00
Martin Hořeňovský 95b0eb2b6c TAP reporter now behaves as if -s was always set
This should fulfill the TAP specification better.
2017-03-02 15:54:08 +01:00
Martin Hořeňovský 0b28d3daf2 Merge branch 'tap-count-success' of https://github.com/gahr/Catch 2017-03-02 15:23:46 +01:00
Phil Nash c6535a080e v1.8.1 release 2017-03-01 16:04:44 +00:00
Phil Nash 673ec550f5 Moved definition of _BSD_SOURCE earlier 2017-03-01 15:59:10 +00:00
Pietro Cerutti da023b2f9a TAP Reporter: count success tests even if not printed
This fixes a bug whereas running the TAP reporter without the -s switch
causes the reporter to print 1..0.
2017-03-01 09:24:58 +00:00
Phil Nash 0952b76e16 v1.8.0 release 2017-02-28 14:19:09 +00:00
Martin Hořeňovský d5c623b3b6 Merge branch 'develop' of https://github.com/CNugteren/Catch
This adds an optional absolute margin to the Approx checks.
2017-02-27 13:12:13 +01:00
Martin Hořeňovský 061a183036 Console reporter now uses fixed decimal formatting
3 decimal places, output in seconds.
2017-02-27 11:34:15 +01:00
Martin Hořeňovský 72b72ca937 Fix C++11 dependency in TAP reporter 2017-02-22 17:04:36 +01:00
Martin Hořeňovský a8a6b3159d Disabled C4312 in the evaluate layer
We reinterpret cast int to T* (because someone might compare 0 to a
ptr), which causes 4312 to fire when x64 platform is set.

Fixes #148
2017-02-22 14:14:59 +01:00
Martin Hořeňovský 9e2616aeac Add missing assert.h include to reporter bases.
It being missing caused an error when compiling under MSVC.
2017-02-22 13:31:51 +01:00
Martin Hořeňovský c5ffd2e3f0 Fixed up Automake reporter 2017-02-22 13:29:17 +01:00
Martin Hořeňovský b0260c615d Fixed-up TAP reporter a bit. 2017-02-22 13:28:13 +01:00
Colton Wolkins (Ogre) a63ce953a0 Add TAP reporter
This is a hackish attempt to add a TAP reporter (see
philsquared/Catch#309 ) by following the TAP 12 specification
<http://testanything.org/tap-specification.html>. I'm unsure how well I
did in following the spec or with following good C++ guidelines.
Comments are appreciated.

Signed-off-by: Colton Wolkins (Ogre) <frostyfrog2@gmail.com>
2017-02-22 11:35:20 +01:00
Justin Wilson b753f05d74 Add reporter for Automake (#826)
This allows for integration with Automake's default log compiler.

See #826 for more details.
2017-02-22 11:17:25 +01:00
Martin Hořeňovský 9bab7c8229 Changed console reporter test duration reporting format
Was
"<section-name> completed in XXX s."
Now is
"XXX s: <section-name>"

Closes #322

(cherry picked from commit 0805539)
2017-02-22 08:35:53 +00:00
Phil Nash d8c4512b25 Removed tabs 2017-02-22 08:26:52 +00:00
Phil Nash d2a59ad37b Fixed test spec parser issue
- multiple specs in a single string, with escapes in each were erroring out
2017-02-22 07:49:38 +00:00
Phil Nash 10dfca34ac Added first vector matchers (Contains and Equals) 2017-02-21 16:05:04 +00:00
Phil Nash 45d4096756 Generalised Matchers so objects and comparators can be different types 2017-02-21 15:52:03 +00:00
Phil Nash 1ca8cefa9a Added #define needed for gettimeofday() to be declared on some versions of Cygwin 2017-02-21 11:32:32 +00:00
philsquared ca66dd243c Added a couple more unimplemented assignment operators to silence VS2013 warnings 2017-02-21 09:10:44 +00:00
philsquared 44632c3d71 Merge branch 'warning-c4512' of https://github.com/gchudnov/Catch into gchudnov-warning-c4512 2017-02-21 08:56:14 +00:00
philsquared b1835e1de9 Moved WIndows leak detector code out of main() 2017-02-17 23:43:31 +00:00
Martin Hořeňovský 8cd413572a Merge branch 'dev-windows-leakdetection' 2017-02-17 14:25:08 +01:00
Martin Hořeňovský 30e4dbef1c Report leaks to debugger in addition to stderr
This branch should also close #120.
2017-02-17 14:22:57 +01:00
Phil Nash 90b3946e9c Add file/line to TestCase, Section and Failure elements in Xml Reporter 2017-02-17 10:26:17 +00:00
Martin Hořeňovský d8230a8d4d Add opt-in leak detection under MSVC + Windows.
Closes #439
2017-02-16 11:09:09 +01:00
Martin Hořeňovský c6178601c5 Cygwin compatibility fixes 2017-02-15 17:57:22 +01:00
Martin Hořeňovský 2e0ae01b05 Improve -Wparentheses supression for gcc
If the gcc version supports `_Pragma` properly, we use that to disable
it locally inside assertions.

Otherwise we disable it for the entire TU.

Fixes #674
2017-02-15 17:11:44 +01:00
Phil Nash fe690a68ef push/pop warnings when disabling parentheses warnings within assertion (gcc/ clang) 2017-02-15 10:03:28 +00:00
Martin Hořeňovský 3cfef738e7 Merge branch 'dev-performance-round3' 2017-02-15 10:35:01 +01:00
Martin Hořeňovský 7b13a8f85a Move debug break out of tests, speeds up compilation time
This is hidden behind CATCH_CONFIG_FAST_COMPILE
2017-02-14 15:35:12 +01:00
Phil Nash 2081caa452 Import MatcherBase to Catch namespace 2017-02-14 09:16:54 +00:00
Phil Nash a5a013811c Renamed toStringUncached -> describe 2017-02-14 09:16:54 +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
Phil Nash d08cee288f v1.7.2 build 2017-02-13 16:15:42 +00:00
Phil Nash 873ef276b6 XML Reporter closes tag and flushes stream at end of TestCase and Section tags.
This fixes an issue where XML reports on stdout are broken by printf statements
2017-02-13 15:56:25 +00:00
Martin Hořeňovský bc68b9f454 More include simplifications 2017-02-13 14:12:22 +01:00
Phil Nash 67d513aa73 Removed single char contains()
- had incorrect prototype anyway
2017-02-13 08:20:45 +00:00
Phil Nash 9a3486a705 Replaced use of dynamic_cast with static_cast.
It wasn't necessary anyway.
This addresses #821
2017-02-12 22:00:17 +00:00
Martin Hořeňovský 50dee9ae57 Fixed typo in CLI error reporting 2017-02-12 13:50:15 +01:00
Martin Hořeňovský b2a6fe971b Couple more includes cleaned out 2017-02-12 12:48:25 +01:00
Martin Hořeňovský 9012f95964 Moved some std includes out from catch_common.h 2017-02-12 12:17:07 +01:00
Martin Hořeňovský d0620c3495 Added std:: qualification to some functions from C stdlib
This should solve #543, once Clara changes are in as well.
2017-02-11 23:20:09 +01:00
Phil Nash 005787f1c5 Marked IConfig implementations in Config CATCH_OVERRIDE
(silences warnings)
2017-02-10 22:39:27 +00:00
Martin Hořeňovský f75a511b5c Fix MSVC /analyze warning about inconsistent annotations 2017-02-10 17:12:41 +01:00
Phil Nash ab44fb6811 The file/ line in sections is now of the section. not the test case 2017-02-10 11:56:46 +00:00
Martin Hořeňovský 73159ace3d REQUIRE_THROWS_AS now catches exception by const&
Prevents some warnings caused by catching complex types by value.

Closes #542
2017-02-09 12:57:01 +01:00
Martin Hořeňovský 9952dda524 REQUIRE_THROWS_AS is now reported with expected type as well
Also updated tests to reflect this change.
2017-02-09 12:51:43 +01:00
Martin Hořeňovský e543cc0646 Removed an obsolete file that somehow got into the previous master. 2017-02-09 11:12:25 +01:00
Martin Hořeňovský a38ccec33a Added 3rd party bug to documentation 2017-02-08 20:53:39 +01:00
Marek Klus ab199d9cf9 XmlReporter: Trim test case name; added description and tags attributes to the test case element in the xml report. 2017-02-07 23:12:58 +00:00
Phil Nash 97d8003a71 XmlWriter can specify a stylesheet
Provide an extension point on XmlReporter to be able to supply a stylesheet url in a derived implementation
2017-02-07 23:09:43 +00:00
Phil Nash 1f271c9944 XmlWriter reverts to XML 1.0.
Character encodings that are not valid in XML 1.0 are instead written using C-style escapes
2017-02-07 22:48:06 +00:00
Martin Hořeňovský 7b8a27eadb v1.7.1 build 2017-02-07 10:06:52 +01:00
Phil Nash 2b74613c54 Revert "First cut of Evaluate refactoring to remove int specialisations, among other things"
This reverts commit 39753558eb.
2017-02-06 22:37:23 +00:00
Martin Hořeňovský 23600609c0 Deregister SEH handler before reporting SE. 2017-02-06 20:40:46 +01:00
Martin Hořeňovský 4feb2dbb50 Removed const qualification to disambiguate between operator overloads 2017-02-06 20:39:32 +01:00
Phil Nash 84af6bc955 XmllWriter flushes the stream after every endElement now 2017-02-06 16:25:36 +00:00
Phil Nash 88b760276d Revert "XmlWriter reverts to XML 1.0."
This reverts commit a189387f49.
2017-02-06 16:21:01 +00:00
Phil Nash 23eb4cc580 Added stdout and stderr to XML Reporter 2017-02-06 16:14:06 +00:00
Phil Nash a189387f49 XmlWriter reverts to XML 1.0.
Character encodings that are not valid in XML 1.0 are instead written using C-style escapes
2017-02-06 16:00:05 +00:00
Phil Nash 39753558eb First cut of Evaluate refactoring to remove int specialisations, among other things 2017-02-06 15:15:43 +00:00
Martin Hořeňovský e991c006b7 Fixes for MinGW compatibility
Some versions of MinGW do not support enough of Win32 API to let us work
with SEH, so SEH is now MSVC only (+ configurable toggle).

Also made use of gmtime_s MSVC only (as oposed to Windows only).

Fixes #805
2017-02-06 01:43:53 +01:00
Martin Hořeňovský 712323ab7c Include windows.h proxy header, instead of windows.h itself
Because the signal changes were in a different branch from the windows.h
related changes, the SEH handling code included the header directly.

Fixes #803
2017-02-03 14:09:17 +01:00
Martin Hořeňovský ce37f48ffa v1.7.0 build 2017-02-01 21:47:43 +01:00
Martin Hořeňovský f58ff0c540 Remove \l, add \f in character pretty printing
I have never head of \l and MSVC warns about unknown escape sequence, so
I changed it into \f that definitely exists and potentially might be
useful.
2017-02-01 21:31:14 +01:00
Phil Nash b524fa7cd8 Fixed bugs in escape char handling in test names
1. If escape char is first char, sets start of range
2. Multiple escape chars are handled (offsets chars to remove)
2017-02-01 14:13:20 +00:00
Eric Schmidt 5121b5b058 Put quote marks around printed characters; also nicely print some escapes 2017-01-31 21:53:36 +01:00
Jan Včelák 1e5176bd69 Cap main exit code to 255 (#797)
Changed default main to clamp exit code to 8 bits because of POSIX limitations.

Updated documentation about declaring non-default main.
2017-01-31 20:48:14 +01:00
Martin Hořeňovský 0dabd951ba expr is now cast to void in THROWS family of assertions.
This prevents Clang from complaining about unused value in expressions
containing explicit casts used in the THROW assertion macro family.

Example:
`REQUIRE_THROWS_AS(static_cast<bool>(object), std::bad_cast);` would
trigger `-Wunused-value` warning. Now it does not.

Credits to Arto Bendiken, who submitted a PR almost 3 years ago, but his
branch has since died and I was unable to merge it.
2017-01-31 18:02:11 +01:00
Josef Kemetmueller 70d3c937c3 Enable breaking into debugger on Mac
The integrated assembler segment was missing an underscore:
"_asm__". Also we remove the "DEBUG" macro check, so we are consistent
with the linux and windows variant.
Now breaking into gdb on failure should work via:
	gdb --args test_executable --break
2017-01-31 16:00:42 +00:00
Martin Hořeňovský 38af8d7035 Fixed SEH deregistration on Windows
Should fix #796
2017-01-30 19:54:16 +01:00
Martin Hořeňovský 615aa071a8 Merge branch 'dev-performance-round2' 2017-01-30 13:02:48 +01:00
Martin Hořeňovský 15816c5760 Revert "use sizeof(expr) for unevaluated syntax check"
Using sizeof(expr) can trigger a compile-time error,
"lambda expressions are not allowed in an unevaluated context", when passing
expression containing lambda, like a std algorithm. This error is considered
a standard defect, as it is meant to prevent lambdas in decltype
or templates, but not in sizeof.

This reverts commit 227598af47.
2017-01-30 11:56:29 +01:00
Martin Hořeňovský bcaa2f9646 Use char literal instead of string literal with 1 char
In reality, this is a relatively small performance improvement,
especially with the previous improvements removing lots of superfluous
string handling, but still was measurable.
2017-01-29 23:07:15 +01:00
Martin Hořeňovský 60f8ebec49 Use const char* for filename in SourceLineInfo
This is sane, because those `const char*`s are given to us by compiler,
from the text area and thus we do not have to manage their lifetimes. We
also never want to change them.

Also moved copy constructor to compiler-generated methods, not sure why
it wasn't -- even before it was the same as a compiler would generate.
2017-01-29 22:03:27 +01:00
Alexander Ryabykin 02a69b449f Compilation warnings fix (#791)
* Compilation warnings fix

* Removed unused argument from reportFatal function
2017-01-27 09:32:58 +01:00
Martin Hořeňovský c390c4cb9f Fixed inconsistent and trailing whitespace
This means that all tabs used in indentation are now 4 spaces and that
there should be no more trailing whitespace.

Ill also look into creating a pre-commit hook that will prevent this
from happening in the future.

Fixes #105
2017-01-26 23:13:12 +01:00
Martin Hořeňovský 60a9ac7e65 Enabled previous commit under MSVC, introduced new feature toggle 2017-01-26 18:47:29 +01:00
Jonathan Coe c06afe438e Add support for comparison of Approx with strong typedefs
closes #652
2017-01-26 18:44:03 +01:00
Martin Hořeňovský 4ce11d63a6 Merge branch 'dev-performance' 2017-01-25 22:56:36 +01:00
Martin Hořeňovský 83f4b39680 Added benchmark for previous commit, added iterations to failure bench. 2017-01-25 22:39:43 +01:00
Martin Hořeňovský b1171bd1f2 Merge branch 'dev-signals' 2017-01-25 22:09:52 +01:00
Martin Hořeňovský 184865358c CHECK no longer stops running SECTION on exception.
This seems to be much closer to desired behaviour than the current one, where
CHECK(false) lets the execution continue, but CHECK(<throws>) does not.
2017-01-23 17:52:17 +00:00
Phil Nash 31c23b9489 Added [!nonportable] tag 2017-01-23 17:44:55 +00:00
Phil Nash f347611403 Restated text format loop to avoid out-of-bounds condition 2017-01-23 16:58:49 +00:00
Phil Nash 1efd8d3067 Added missing <iterator> #include 2017-01-23 15:19:42 +00:00
Phil Nash e7bcbb35c0 First cut of -c/—section option for running specific sections 2017-01-23 12:36:03 +00:00
Phil Nash 4a04682e49 Text formatting rework
Rewrote main wrapping loop. Now uses iterators instead of indices and intermediate strings.
Differentiates between chars to wrap before, after or instead of.
Doesn’t preserve trailing newlines.
Wraps or more characters.
Dropped support for using tab character as an indent setting control char.
Hopefully avoids all the undefined behaviour and other bugs of the previous implementation.
2017-01-23 12:28:40 +00:00
Martin Hořeňovský 9a56609569 v1.6.1 build 2017-01-20 12:49:59 +01:00
Mickey Rose 227598af47 use sizeof(expr) for unevaluated syntax check 2017-01-19 21:25:27 +01:00
Martin Hořeňovský ee0ca512ea Force short-circuited evaluation for types that have overloaded &&.
This fixes #574.
2017-01-17 23:31:03 +01:00
Martin Hořeňovský b71a06cf98 JUnit reporter outputs timestamps now
Also extended approval tests script to support the change
2017-01-16 20:21:43 +01:00
Martin Hořeňovský 2e87f8e328 Merge branch 'windows-header-defines' of https://github.com/horenmar/Catch 2017-01-16 17:00:43 +01:00
Martin Hořeňovský afe46ff270 Extracted NOMINMAX and WIN32_LEAN_AND_MEAN guards into a proxy header 2017-01-16 16:52:44 +01:00
Phil Nash c65aeaf25f Clean up generator state 2017-01-16 10:34:16 +00:00
Phil Nash 750b52b814 suppress use of __COUNTER__ when being parsed by CLion (or AppCode). 2017-01-16 10:34:16 +00:00
jbo-ableton e12fc4aca0 Fix missing CATCH_ for CHECK_THAT in prefixed macro version 2017-01-15 22:11:43 +01:00
Vadim Zeitlin e1c4a4bd9b Use inline assembly with gcc under Linux for CATCH_TRAP
This is more convenient than using the generic portable raise(SIGTRAP) as it
avoids having another stack frame in the debugger when the break happens.
2017-01-15 19:29:34 +01:00
Vadim Zeitlin 25d017763b Refactor CATCH_BREAK_INTO_DEBUGGER() to avoid repetition
Don't duplicate Catch::isDebuggerActive() check many times, do it just once
in CATCH_BREAK_INTO_DEBUGGER() definition and use a separate CATCH_TRAP()
macro for the really platform-dependent part.
2017-01-15 19:29:34 +01:00
Vadim Zeitlin b634e592da Add support for breaking into debugger for Linux
Use Linux-specific /proc/$PID/status file to check whether we're being
debugged and a generic raise(SIGTRAP) to actually break into the debugger.
2017-01-15 19:29:34 +01:00
Martin Hořeňovský 3b98a0166f Various small string usage performance improvements.
* Empty strings are now direct constructed as `std::string()`, not as empty string literals.
* `startsWith` and `endsWith` no longer construct new a string. This should be an improvement
for libstdc++ when using older standards, as it doesn't use SSO but COW and thus even short
strings are expensive to first create.
* Various places now use char literal instead of string literals containing single char.
** `startsWith` and `endsWith` now also have overload that takes single char.

Generally the performance improvements under VS2015 are small, as going from short string
to char is mostly meaningless because of SSO (Catch doesn't push string handling that hard)
and previous commit removed most string handling if tests pass, which is the expect case.
2017-01-15 10:05:01 +01:00
Mickey Rose a1e9b841ff lazily stringify expressions 2017-01-14 21:56:16 +01:00
Martin Hořeňovský ffc4a9dc14 If we receive a signal, we re-register ALL previous signal handlers.
This fixes the case when we pass signal to previously registered
handler, and it needs to transform the signal into different one.

Still problematic: What if the signal handler we replaced does not
terminate the application? We can end up in a weird state and loop
forever.

Possible solution: Deregister our signal handlers, CALL the previous
signal handler explicitly and if control returns, abort. This would
however complicate our code quite a bit, as we would have to parse the
sigaction we delegate to, decide whether to use signal handler or signal
action, etc...
2017-01-14 15:21:44 +01:00
Martin Hořeňovský 7c8b93eac3 Removed superfluous comments (bad merge after cherry pick). 2017-01-14 15:08:00 +01:00
Phil Nash 40dbdf6cb2 Reset signals immediately after use and re-raise orginal signal instead of just exiting 2017-01-12 17:31:56 +01:00
Martin Hořeňovský 70f43d719b Added signal handling under Windows.
Only some "signals" are handled under Windows, because Windows does not
use signals per-se and the mechanics are different. For now, we handle
sigsegv, stack overflow, div-by-zero and sigill. We can also
meaningfully
add various floating point errors, but not sigterm and family, because
sigterm is not a structured exception under Windows.

There is also no catch-all, because that would also catch various
debugger-related exceptions, like EXCEPTION_BREAKPOINT.
2017-01-12 16:40:14 +01:00
Martin Hořeňovský a281173099 Fix for sigsegv stack overflow behavior
Also stops Catch from assuming its the only signal user in the binary,
and makes it restore the signal handlers it has replaced. Same goes for
the signal stack.

The signal stack itself probably shouldn't be always reallocated for
fragmentation reasons, but that can be fixed later on.
2017-01-12 16:23:55 +01:00
Martin Hořeňovský b3907a78e1 Added NOMINMAX and WIN32_LEAN_AND_MEAN defines before including windows.h
This stops the `windows.h` header from defining `min` and `max` macros
and including lot of Windows APIs that are not needed by Catch.
2017-01-12 16:00:02 +01:00
Phil Nash 3b2f206191 v1.6.0 build - including release notes 2017-01-11 16:44:36 +00:00
Phil Nash 4e4d733f90 Added \ as escape character in test names on the command line - so you can run tests by name when they contain , or [ 2017-01-11 16:27:16 +00:00
Phil Nash b68e8f9a24 Added missing #include so CATCH_CONFIG_COUNTER properly takes into account the current compiler.
May address #677 and #435 and others.
2017-01-11 16:27:16 +00:00
Martin Hořeňovský a1bed572be Standardize C++11 feature toggles to follow documentation
Closes #774
2017-01-10 22:54:57 +01:00
Martin Hořeňovský 6991549457 Fixed compile error under VS2015 /c++:latest, caused by using random_shuffle
Now if we detect C++11 compiler, or MSVC in version corresponding to VS2015,
we switch from using `std::random_shuffle` to `std::shuffle`.

`std::random_shuffle` was officially deprecated in C++14, and removed in C++17.

Also removed guarded inclusion of `<random>` header, as there was nothing
in the header that used it.
2017-01-09 23:29:13 +01:00
Phil Nash 5b00fd40ba Merge pull request #767 from hmich/xml-encoder-extended-ascii
Do not encode extended ASCII characters in XML reporter
2017-01-09 18:37:52 +00:00
Jonathan B. Coe 37e1e24309 add support for inequalities 2017-01-08 22:28:53 +01:00
Ross Bencina 7255be28cc remove concatenation of m_exprComponents.op in if-branch where op has tested empty in previous line 2017-01-07 13:37:08 +01:00
Kevin Ushey 7d2668fa15 add missing argument to CATCH_CHECK_THROWS (closes #602) 2017-01-07 12:16:06 +01:00
Philipp Claßen 8d1e240700 Fixed shell color code of "Blue" 2017-01-07 10:30:43 +01:00
Igor Akhmetov 8d16d95a99 Do not encode extended ASCII characters in XML reporter 2016-12-26 11:39:19 +00:00
Phil Nash 2be372710e Build 1.5.9 2016-11-29 12:15:50 +00:00
Phil Nash 0c093bee38 Removed now redundant xml stream initialisation 2016-11-29 12:13:55 +00:00
Phil Nash a9561ecb31 Merge branch 'xml-reporter-fix' of https://github.com/horenmar/Catch into horenmar-xml-reporter-fix 2016-11-29 12:10:46 +00:00
Phil Nash fb99cc556d Merge branch 'missing-include-fix' of https://github.com/horenmar/Catch into horenmar-missing-include-fix 2016-11-29 12:05:11 +00:00
Phil Nash 862d13138c Explicitly convert int to char during transform on string (equivalent of PR #756) 2016-11-29 12:04:09 +00:00
Martin Hořeňovský 0c8c6b347a Fixes build error caused by missing include. 2016-11-28 15:47:20 +01:00
Martin Hořeňovský 40b6ad73df Fix XmlReporter always writing first line to stdout 2016-11-26 12:11:23 +01:00
Phil Nash e27c4ee042 Build 1.5.8 2016-10-26 12:08:26 +01:00
Phil Nash f90ee9fb37 Merge branch 'master' of https://github.com/BillyONeal/Catch into BillyONeal-master 2016-10-26 12:04:38 +01:00
Billy Robert O'Neal III c17ba0870a Fix transform without a lambda
Catch apparently supports targeting C++03, so use an inline function
instead.
2016-10-14 14:28:15 -07:00
Billy Robert O'Neal III 79f01100e3 Fix transform narrowing warnings
Catch passes ::tolower into std::transform with string iterators.
::tolower has the signature int(int), which triggers a stealth narrowing
warning inside std::transform, because transform calls
*_Dest = _Fn(*_First), which implicitly narrows an int to a char.

For this particular application the narrowing is fine, so explicitly
narrow in a lambda.
2016-10-14 14:16:21 -07:00
Billy Robert O'Neal III ccf7f2842a Fix random_shuffle narrowing warnings
Catch passes an RNG which accepts int to random_shuffle. Inside
random_shuffle, the STL tries to call that RNG with the difference_type
of the user provided iterators. For std::vector, this is ptrdiff_t,
which on amd64 builds is wider than int. This triggers a narrowing
warning because the 64 bit difference is being truncated to 32 bits.

Note that this RNG implementation still does not produce a correctly
uniformly shuffled result -- it's currently asserting that std::rand
can produce 1000000 which is false -- but I don't know enough about
how much repeatable shuffles are necessary here, so I'm leaving that
alone for now.
2016-10-14 14:06:45 -07:00
Phil Nash e0302db4a6 Rename element for Fatal Error Condition so it doesn't have spaces
Fixes: #685
2016-10-14 18:45:08 +01:00
Phil Nash 40f6068d52 Build 1.5.7 2016-09-27 10:46:22 +01:00
Phil Nash 21cbfc107e --list-test-names quotes test names that start with #
- completes #717
2016-09-27 10:43:03 +01:00
Phil Nash b1eeec7c69 -f supports quoted test names (test name surrounded with " characters).
This is the first part to resolving #717
2016-09-27 10:27:28 +01:00
Phil Nash c23b374f3d Added braces to emphasise the return logic 2016-09-27 09:58:12 +01:00
nabijaczleweli 8c459dd207
Fix misindent
Closes #679
2016-09-27 00:35:26 +02:00
Phil Nash c47c1797d2 Merge pull request #701 from razeh/master
Fixes for XML encoding.
2016-09-22 17:44:14 +01:00
Igor Akhmetov 02c7e41c7c Do not trim test case names in the XML reporter.
SCENARIO does not add leading spaces to the test name (only BDD-style section
names are modified), so the trimming is not necessary. But if the name is
trimmed, it makes it harder to correlate the output of XML reporter with tests
that have leading spaces in their name: e.g. these tests will have the same name
attribute:

TEST_CASE("Test") {}
TEST_CASE(" Test") {}
2016-08-30 11:15:19 +01:00
Robert A Zeh 5095619955 Fixes for XML encoding.
This commit fixes the following scenario:
  * You have a test that compares strings with embedded control
  characters.
  * The test fails.
  * You are using JUnit tests within TeamCity.

Before this commit, the JUnit report watcher fails on parsing the XML
for two reasons: the control characters are missing a semicolon at the
end, and the XML document doesn't specify that it is XML 1.1.

XML 1.0 --- what we get if we don't specify an XML version --- doesn't support embedding control characters --- see
http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml
for all of the gory details.

This is based on PR #588 by @mrpi
2016-08-24 09:38:24 -05:00
Phil Nash 35f510545d v1.5.6 2016-06-09 19:21:09 +01:00
Phil Nash 742457cbcf Use Clara v0.0.2.4 (updated) - fix for string lengths 2016-06-09 19:19:55 +01:00
Phil Nash 1aa6c91e64 Fixed RNG issue with pre C++14 compilers 2016-06-09 19:07:05 +01:00
Phil Nash ac220289a6 v1.5.5:
Deal with auto_ptr and random_shuffle hard deprecations in C++14
2016-06-09 08:19:23 +01:00
Phil Nash be3570ef22 Use std::shuffle instead of (deprecated) std::random_shuffle if C++14 detected 2016-06-09 08:15:57 +01:00
Phil Nash a74d760d74 Switched remaining std::auto_ptrs to use CATCH_AUTO_PTR 2016-06-08 19:14:54 +01:00
Phil Nash f666f5f0ae v1.5.4 2016-05-12 19:18:04 +01:00
Phil Nash 7940d58a2f "test" expression using !! instead of static_cast to bool.
This addresses #657 while (hopefully) maintaining fix for #574
2016-05-12 19:17:55 +01:00
Phil Nash ebf9f3bb9d v1.5.3 2016-05-10 19:09:59 +01:00
Phil Nash b57e734eb4 Merge branch 'throw-on-duplicate-tests' of git://github.com/rcdailey/Catch into rcdailey-throw-on-duplicate-tests 2016-05-10 19:06:47 +01:00
Phil Nash 5c198d85e6 v1.5.2 2016-05-07 23:14:04 +01:00
Phil Nash 5a6b291878 Using Clara 0.0.2.4 - fixes issue with spaces in quoted arguments 2016-05-07 23:12:46 +01:00
Phil Nash 92b141ee53 v1.5.1 2016-04-28 08:13:00 +01:00
Phil Nash 4f1263d6b4 Removed use of dynamic_cast from test_case_tracker.
(Thanks to #631 and #648)
2016-04-28 08:11:12 +01:00
Phil Nash 3b19458fed Removed use of dynamic_cast for MultipleReporters
(Thanks to #630, #636 and #648)
2016-04-28 08:11:12 +01:00
Phil Nash 0fe303b6b7 v1.5.0 (due to new embedded Clara) 2016-04-23 13:25:51 +01:00
Phil Nash 1c47fe023a Updated embedded Clara to 0.0.2.3
- has all new, more robust, token parsing.
- eliminates issue with unreachable code
- allows use of forward slashes to introduce short args on Windows
2016-04-23 13:21:29 +01:00
Robert Dailey 86c0ea2999 [#608] Don't use exit() on duplicate test descriptions
Instead of `exit(1)`, it now throws `std::runtime_error` with the details
of the failure. This exception is handled in `run()` at a higher level where
the log is printed to cerr and the test gracefully exits.
2016-04-01 11:56:51 -05:00
Ian Copland 7075b7defb Added missing CATCH_OVERRIDE to CumulativeReporterBase::assertionEnded(). This fixes a warning when building in Xcode 7.2+ with default warning settings. 2016-03-29 17:03:09 +01:00
Phil Nash c984fc3ecd v1.4.0
- use __COUNTER__ for unique IDS instead of __LINE__ (where possible)
+ bug fixes
2016-03-15 07:24:26 +00:00
Phil Nash 447f53e9e3 Fixed !shouldfail 2016-03-14 19:13:34 +00:00
Phil Nash 13a887ad24 Use __COUNTER__ when generating unique names instead of __LINE__, if available.
Based on PR #351
2016-03-14 07:55:00 +00:00
Phil Nash 02af70ed0b build v1.3.6 (include's David Grayson's fix for the gcc pragma) 2016-03-11 18:31:52 +00:00
David Grayson 97e335437e Fix CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS: GCC needs to be capitalized.
Fixes issue #600.
2016-03-04 19:24:10 -08:00
Phil Nash ae5ee2cf63 v1.3.5 2016-02-29 08:17:18 +00:00
Phil Nash 458f37ed57 Merge branch 'explicit-bool-conversion' of git://github.com/seanmiddleditch/Catch into seanmiddleditch-explicit-bool-conversion 2016-02-29 08:05:46 +00:00
Phil Nash 91bfe68a75 Suppress parentheses warnings on clang and gcc
- should address #593, #528, #521, #496 (and possibly others)
2016-02-29 08:03:48 +00:00
Phil Nash 8ccb18daa9 Added --use-colour option to give finer control over colourisation.
--force-colour is still present but deprecated (will remove in v2)
2016-02-29 08:03:48 +00:00
Sean Middleditch 776247af81 Support explicit operator bool
Fix for issue 596
2016-02-25 00:34:09 -08:00
Phil Nash 3b4edd7a48 Build for v1.3.4 2016-02-10 19:24:48 +00:00
Phil Nash 880a2046d9 Use Clara v0.0.1.1 2016-02-10 19:21:09 +00:00
Phil Nash ffad3a0a39 Fix as suggested in #574
Cast expression to bool to prevent custom && from defeating short-circuiting
2016-02-10 05:49:56 +00:00
Phil Nash c7243562b0 v1.3.3 2016-01-22 07:59:06 +00:00
Phil Nash b84e08ad6f Fix EndsWith Matcher (and refactored EndsWith and StartsWith in terms of endsWith and startsWith) (see Issue #573) 2016-01-22 07:59:06 +00: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 7424b23bfb v1.3.1 2015-12-28 15:07:32 +00:00
Phil Nash dbd3a84d92 Fixed catch_with_main.hpp (no longer references deleted catch_runner.hpp) 2015-12-28 15:06:04 +00:00
Simon Warta a5fba672e1 Add missing comma when in captured expression for matchers
Such that
CHECK_THAT( hex_encode(outbuf) Equals("B5D4045C") )
becomes
CHECK_THAT( hex_encode(outbuf), Equals("B5D4045C") )
2015-12-10 08:09:10 +00:00
Phil Nash 2106d82881 Fixed non-variadic version of REGISTER_TEST_CASE 2015-12-09 18:24:29 +00:00
Phil Nash 981347b6e4 patch build to include last two fixes 2015-12-09 18:11:48 +00:00
Phil Nash 9e341231ba main takes args by non-const char*
- see #548
2015-12-09 06:22:15 +00:00
Phil Nash 2b688e1cef Initialise m_currentSortOrder
- as reported in #545
2015-12-09 06:15:52 +00:00
Phil Nash 722315a1f5 Removed some trailing whitespace 2015-12-04 10:20:33 +00:00
Phil Nash fdc42d0af4 Merged from develop branch
- now v1.3.0
2015-12-04 10:19:08 +00:00
Phil Nash 7e15d9b20b dev build 4 2015-11-20 16:59:14 +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 e4fa62a14e dev build 3 2015-11-18 08:39:54 +00:00
Phil Nash a49f088032 exception translators considered even for types deriving from std::exception, now
- also added docs for exception translators
- updated approvals
2015-11-18 08:39:21 +00:00
Phil Nash ed6e9128a4 Session's argv now taken by char const* const*
- see #427
2015-11-18 07:57:24 +00:00
CNugteren 3523c39f44 Changed 'auto' into 'bool' for C++98 compatibility 2015-11-12 15:31:42 +01:00
cnugteren 2585d280d1 Added an optional absolute margin to the approximation checks 2015-11-12 15:11:36 +01:00
Phil Nash 92356769f1 dev build 2 2015-11-06 18:07:29 +00:00
Phil Nash d10b73f9f1 changed Not struct to a class.
- it was forward declared as a class, which caused warnings on some compilers. It should really have been a class anyway.
- this addresses the same issue as PR #534, albeit from the other angle.
2015-11-06 18:07:29 +00:00
Phil Nash 08844e7e57 build 1.3.0-develop.1
I've incremented the minor release number. This is a slight abuse of semantic versioning so let me explain:
I've slightly changed how matchers are used. The matcher macro (REQUIRE_THAT/ CHECK_THAT) used to introduce the Catch::Matchers namespace before the macro token for the matcher, to save you having import the namespace yourself.
The trouble is if the matcher token is not a simple matcher (can now be an expression) this breaks!
So I've removed that qualification. Now if you use Matchers you'll have to do somethings like using namespace Catch::Matchers to bring them in.
This is a breaking change - but, OTTOH, Matchers are an undocumented "beta' feature that I've stated in the past is not guaranteed to have a stable API - so I don't think this warrants a major version change - but I did want to make it significant enough that people do notice that something is going on - and perhaps lead them to this commit message.
2015-11-05 18:52:18 +00:00
Phil Nash 054e3c5b43 Added &&, || and ! operator overloads for matchers
(syntactic sugar for AllOf, AnyOf and Not compositional matchers, respectively)
2015-11-05 18:46:00 +00:00
Phil Nash f3e7722cc6 Don't introduce Catch::Matchers namespace in macro
- this could be a breaking change - fixed up self-test code to compensate
2015-11-05 18:10:33 +00:00
Phil Nash 9576ad9108 Removed unused parameter
- as per PR #530
2015-11-04 18:11:54 +00:00
Phil Nash e91738103c Stripped trailing whitespace from all source code lines
(replaces need for PRs #310 and #504)
2015-11-04 18:04:15 +00:00
Phil Nash ece529ae7c Fixed noexcept destructors issue 2015-11-03 17:37:43 +00:00
Phil Nash 9e42153fe5 dev build 16 2015-11-03 17:06:54 +00:00
Phil Nash f5642be7b4 Fixed reversed logic of NoAssertions warning check
(that explains the previous regressions)
2015-11-03 17:05:08 +00:00
Phil Nash 7e34619f03 v1.2.1-develop.15
- includes all new section tracker
2015-11-03 08:01:27 +00:00
Phil Nash bc8840cbb8 Removed deprecated section tracking implementation and tests 2015-11-03 07:38:14 +00:00
Phil Nash aa49823bc0 perform startRun() at the start of each test case 2015-11-03 07:29:23 +00:00
Phil Nash 52a417df7b Fitted new section tracking 2015-11-02 19:21:46 +00:00
Phil Nash b8515929b8 Moved all new tracking impl into catch_test_case_tracker.pp 2015-11-02 06:14:52 +00:00
Jędrzej bc00d59a4e Fix typo in catch_stream.hpp 2015-10-22 21:49:32 +02:00
Phil Nash d43a47efca Refactored stream related stuff
- simpler, polymorphic hierarchy-based, approach
- less bitty conditionals spread across the code
- all resolved up-front so now config class is immutable
(it had evolved the way it was and in need of a clean-up sweep for a long time)
2015-09-29 19:23:06 +01:00
Phil Nash a0de07d45b Some small clean-ups and refactorings
- removed previous instance saves in RunContext (they were a hang-over from embedded contexts)
- started cleaning up config usage
2015-09-28 01:09:06 -07:00
Phil Nash 0c1c9fa922 dev build 14
- workaround for uncaught_exception issue
- avoid mutating vector while iterating it (due to re-entrancy)
2015-09-27 03:28:14 -07:00
Phil Nash 166ca2e819 Do uncaught_exception checking before calling sectionEnded
- split the uncaught handling (adding to unfinishedSections) into separate method
2015-09-26 18:12:21 -07:00
Phil Nash 15317632f3 Revert "Fix parentheses warning on expression evaluation when using ccache"
This reverts commit 7da777a4b7.
2015-09-26 18:06:53 -07:00
segalaj 7da777a4b7 Fix parentheses warning on expression evaluation when using ccache 2015-09-14 14:28:34 +02:00
Phil Nash d234ed1a67 dev build 13 2015-08-24 06:28:25 +01:00
Phil Nash 7fd7c5b8c8 Merge branch 'matcher-not' into develop
* matcher-not:
  Add matcher: Not()
2015-08-24 06:22:03 +01:00
Simon Warta 312b94e532 Add matcher: Not() 2015-08-12 11:07:55 +02:00
Phil Nash 40d0d2f656 Added unique_ptr detection to compiler_capabilities
- as well as use by C++11 conformant compilers now enabled for VS2013 on too (see #479)
- updated docs with this (and long long and override support)
2015-08-11 08:09:41 +01:00
Phil Nash ad7edd0680 Replaced some stray overrides with CATCH_OVERRIDE 2015-08-10 07:32:21 +01:00
Phil Nash 8a05f46a37 Removed use of std::copy_if (as it's limited to c++11) 2015-08-07 17:53:29 +01:00
Phil Nash e73583d556 dev build 12 2015-08-07 17:30:34 +01:00
Phil Nash afcc38efc5 Fixes for single include 2015-08-07 17:28:48 +01:00
Phil Nash 368714e7aa Added Listeners (programatically provided extra reporters) 2015-08-07 08:20:56 +01:00
Phil Nash 4cb74761d9 Support for multiple reporters
- can't (yet) specify different targets for each reporter (e.g. different files)
2015-08-05 19:02:17 +01:00
Phil Nash c06e1909ae Refactored test filtering and sorting 2015-08-04 23:11:56 +01:00
Phil Nash 8b1b7cd66e dev build 11 2015-08-03 07:40:52 +01:00
Phil Nash 34fa25ed2f Removed Runner class
- it served no purpose - split into functions instead
2015-07-28 18:55:11 +01:00
Phil Nash 85c8074784 Set group name to -n parameter (or exe name)
- As discussed in #469
2015-07-28 18:26:09 +01:00
Phil Nash f3308ed7c4 Let gcc use __cplusplus identifier to decide if nullptr supported
- or, for 4.6, continue to check __GX_EXPERIMENTAL_CXX0X__
See GitHb issue #445 and PR #471
2015-07-27 18:42:36 +01:00
Phil Nash 74eef52644 dev build 10 2015-07-24 08:13:52 +01:00
Phil Nash 2f6371f2ec dev build 9 2015-07-23 23:06:26 +01:00
Phil Nash 733ebb6024 Added CATCH_CONFIG_CPP11_LONG_LONG support 2015-07-23 23:05:05 +01:00
Phil Nash d6e59cd56f Fixed Xml encoding
- don't encode apostrophes
- only encode quotes in attributes
- encode control characters (as in PR #465)
2015-07-23 18:45:31 +01: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 5bbdc8fd38 Dev build 8 2015-07-15 23:03:11 +01:00
Phil Nash 72868920bb Exception message assertions now work with matchers 2015-07-15 23:02:25 +01:00
Phil Nash 8342ae8dfb dev build 7 2015-07-13 15:03:26 +01:00
Phil Nash 2104ca2aa4 Exception message testing now supports wildcards
- extracted WildcardPattern from TestSpec::NamePattern
2015-07-13 15:03:04 +01:00
Phil Nash 93a842e2f0 dev build 6 2015-07-13 06:36:07 +01:00
Phil Nash 85de743d70 Added _THROWS_WITH macros
- asserts on exception message
2015-07-13 06:34:41 +01:00
Phil Nash 1dd0d4c61a Force cout/ cerr to be initialised before errors in test registry are printed
- see #461
2015-07-10 07:46:19 +01:00
Phil Nash 57df3ba998 Force cout/ cerr to be initialised before errors in test registry are printed
- see #461
2015-07-10 07:44:37 +01:00
Phil Nash e6b365dc8c dev build 5 2015-07-07 08:25:15 +01:00
Phil Nash 02e1966db3 Changed --filenames-as-tags prefix to #, added -# as short form and updated docs 2015-07-06 18:46:50 +01:00
Phil Nash 584032dfa4 dev build 4
- undisturbed background colour (windows), from PR #456
2015-07-06 06:23:13 +01:00
Phil Nash 18acff62d3 Merge branch 'develop' of git://github.com/RandomInEqualities/Catch into RandomInEqualities-develop 2015-07-06 06:13:56 +01:00
Phil Nash c1ca0fdabe dev build 3 2015-07-03 18:30:25 +01:00
Phil Nash d6f1446e4e Fixed an issue on some compilers with implicit conversion from nullptr to Ptr
- also cleaned up some warnings to do with CATCH_NULL
2015-07-03 18:27:36 +01:00
Phil Nash 62e517f833 Fixed backslash detection in filenames-as-tags 2015-07-03 18:07:13 +01:00
csa 6160a2b079 Fix for white background in windows powershell when using colour output.
This commit fixes the white background that appears in windows powershell
when catch outputs messages with colour. The previous implementation
ignored the original background colour and defaulted to a white background.
2015-07-03 12:02:40 +02:00
Phil Nash 8f66e3495b dev build 2 2015-07-02 23:03:13 +01:00
Phil Nash d87e551efa reseeds rng before each test case and provides access to seed through Catch::rngSeed() function 2015-07-02 23:02:35 +01:00
Phil Nash b971fe785b develop build 1 2015-07-02 08:21:38 +01:00
Phil Nash 088c5bc53e --filenames-as-tags 2015-07-02 08:20:18 +01:00
Phil Nash 680b1a881b Squashed some warnings about local variables shadowing members
- see #444
2015-07-01 07:50:53 +01:00
Phil Nash 805de43a3d Use CATCH_NULL instead of NULL
- expands to nullptr if CATCH_CONFIG_CPP11_NULLPTR is defined (see #444)
2015-07-01 07:33:27 +01:00
Phil Nash 3b18d9e962 build for v1.2.1 2015-06-30 18:26:09 +01:00
Phil Nash 6d5797231c Split imply from TrackedSection class to avoid use of incomplete type
- see #450
2015-06-30 18:25:49 +01:00
Phil Nash 7ab3b5aefb Added compiler feature suppression macros
_NO_ forms to disable detection of features - particularly C++11 features.
Also removed SFINAE detection (and use in tostring)
2015-06-30 08:41:55 +01:00
Phil Nash 21f7ef6fdc Committed to semantic versioning
as prompted by #365, #430, #447 and a thread on the google group.
- split version bumping out of generateSingleHeader script
- separate scripts for bumping each version component
- "build" number only incremented for "develop" builds
2015-06-29 18:06:15 +01:00
Phil Nash 8cc1108f2b Use <= operator instead of ->* for decomposer
Allows more complex LHS expressions - and works around an Eclipse bug.
See Issues #359, #393 and #247 for details
2015-06-26 06:46:37 +01:00
Phil Nash c51e86819d build 3 2015-05-21 06:16:15 +01:00
Phil Nash fc63b020c5 suppressed some more warnings 2015-05-21 06:15:53 +01:00
Phil Nash 6ed74b5cab changed hex threshold on ints to 255
- and print it in *addition* to the decimal form
2015-05-20 18:28:22 +01:00
Phil Nash 43470b2606 Removed CATCH_CONFIG_CPP11_NULLPTR for VS2015
- as it was already there for VS2010 on
2015-05-19 22:38:30 +01:00
Phil Nash 318c936712 build 2 2015-05-19 22:31:57 +01:00
Phil Nash e86daf8bdd Reorganised C+11 feature detection a bit
and added CATCH_CONFIG_CPP11_NULLPTR for VS2015
2015-05-19 22:31:57 +01:00
Phil Nash c708570d46 Merge branch 'develop' of git://github.com/BMBurstein/Catch into BMBurstein-develop 2015-05-18 08:38:50 +01:00
Baruch 465454fecc Fix REQUIRE_FALSE so that it aborts test case 2015-04-29 13:54:47 +03:00
Phil Nash 37e556186c v1.1 build 1 (master)
Updated version for master and regenerated single include
2015-03-27 18:02:28 +00:00
Phil Nash 0ae7578028 Restored tag parsing when checking for reserved tags
- had been accidentally deleted in an earlier refactoring.
A bit worrying that this didn't get spotted sooner!
2015-03-04 19:01:25 +00:00
Phil Nash 090c74c420 Use reinterpret_cast to eliminate some warnings
#369
2015-03-04 19:00:29 +00:00
Phil Nash 572911d880 Changed comment to work around header stitching bug 2015-03-04 18:33:31 +00:00
Phil Nash a806c3e700 Build 14 2015-03-04 08:23:40 +00:00
Phil Nash 6d1da8e8d7 Merge branch 'develop' of git://github.com/peterhuene/Catch into peterhuene-develop 2015-03-04 08:06:04 +00:00
Phil Nash ce0b170dc2 Suppress warnings correctly for Intel compiler
#376
2015-03-04 07:54:35 +00:00
Phil Nash e04ba5c9f6 Removed over-eager assertion.
Doesn't hold if reporting due to a segfault
#377
2015-03-04 07:47:43 +00:00
Phil Nash 5eb7748a55 Changed relative #includes and made SourceLineInfo sortable (added < op) 2015-03-04 07:17:12 +00:00
Peter Huene e5280b2c57 Add --force-colour option to force colour output.
Adding a --force-colour option to force colour output on POSIX systems,
provided a debugger is not attached.

This allows for Catch to output colours even if STDOUT is not a tty,
which can be the case when the test executable is being spawned by a
parent process (e.g. CMake's ctest).
2015-02-11 13:12:42 -08:00
Phil Nash 7f5615272b build 13
toString for std:tuple
2014-12-30 18:47:29 +00:00
Phil Nash 75a08bbc6c Merge branch 'tuple_to_string' of https://github.com/PureAbstract/Catch into PureAbstract-tuple_to_string 2014-12-30 18:42:17 +00:00
Phil Nash d76e08113b build 12
- includes updated xml reporter
2014-12-30 18:26:07 +00:00
Phil Nash c6635a7b79 Added type attribute to xml reporter output
- reports the macro used
2014-12-30 18:25:27 +00:00
Phil Nash 6817bb099d Fixed up xml reporter and rebased 2014-12-30 18:24:31 +00:00
Phil Nash 3e0c501812 Fixed escaping of ' in TeamCity reporter 2014-12-29 20:04:54 +00:00
Phil Nash 1cbc4f2c9c Merge branch 'develop' of https://github.com/SeanCline/Catch into develop 2014-12-23 18:54:08 +00:00
Phil Nash 92f0836fd3 build 11 2014-12-22 20:18:05 +00:00
Phil Nash 7619920f86 Support for reporting skipped tests
- implemented by TeamCity reporter
2014-12-22 20:10:33 +00:00
Phil Nash 58dcb5ea92 Removed #includes for Catch headers
see comment in file for details
2014-12-22 19:45:16 +00:00
Phil Nash a9f16b18f7 Fix memset build error
Moved #include <cstring> to catch_reporter_bases.hpp
2014-12-22 07:42:25 +00:00
Phil Nash 576aff6085 build 10
First cut of TeamCity reporter
2014-12-21 00:21:23 +00:00
Phil Nash 3f9e3e21ea Some clean-up ready for first push to GitHub 2014-12-21 00:17:45 +00:00
Phil Nash 2771220a41 Cleaned up section headers
- and don't reprint test case name
2014-12-20 01:02:17 +00:00
Phil Nash 8ec959e936 TeamCity reporter work
expanded reporting - includes section headers
2014-12-20 00:46:02 +00:00
Phil Nash 5933d75cdc Fixed HasExpression check
classic spurious ! prefix
2014-12-19 19:25:53 +00:00
Phil Nash 3724463be7 Fixed escape order and expression reporting 2014-12-19 19:24:41 +00:00
Phil Nash 7306eb3cfc TeamCity reporter
added more detail to the assertion message
2014-12-19 19:05:24 +00:00
Phil Nash 458b3ae257 Fixed replace(inPlace) function
and added tests (should have done that in the first place - I'll never learn!)
2014-12-19 18:16:19 +00: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
Phil Nash 91c17f34eb build 9 2014-12-15 07:26:31 +00:00
Phil Nash 0dd214f6db tags with . prefix are all hidden 2014-12-15 07:25:34 +00:00
Phil Nash 6725e09003 any tag prefixed with . hides the test 2014-12-15 07:07:59 +00:00
Phil Nash 13f98431ad build 8 2014-12-12 08:11:18 +00:00
Phil Nash ff9e51df7f toString( int ) uses hex for large values
now matches behaviour of unsigned int
2014-12-12 08:10:45 +00:00
Phil Nash bd9fbe25f6 Fixed toString for Approx
restored to a specialisation instead of an overload
2014-12-11 23:48:11 +00:00
Phil Nash b0545d1f12 Some toString cleanups 2014-12-09 18:49:58 +00:00
Phil Nash e54ac70671 build 7 2014-10-21 07:25:26 +01:00
Phil Nash bde3567f3e Cleaned up terminal colouring impl and added more config options 2014-10-21 07:24:30 +01:00
Sean D. Cline 6e99695610 XmlReporter enhancement: Add an attribute for the macro name of an expression. 2014-10-11 20:01:14 -04:00
Sean D. Cline ea81e98d6a XmlReporter enhancement: Add attributes for duration when requested by the command line. 2014-10-11 19:58:44 -04:00
Sean D. Cline b0e53a8ee0 Move the xml reporter away from the deprecated IReporter interface. 2014-10-11 19:41:52 -04:00
Phil Nash 12fe67cc82 Updated NonCopyable (to include C++11 version) and use for Session and Section 2014-10-03 08:15:27 +01:00
Phil Nash e606cebac5 Fixed #include 2014-10-02 19:13:21 +01:00
Phil Nash 383d7c06a1 Only use std::cout/ cert via Catch::cout/ cert - and make those conditional on CATCH_CONFIG_NOSTDOUT 2014-10-02 19:08:19 +01:00
Phil Nash 85b4e94192 build 6 2014-10-02 18:51:05 +01:00
Phil Nash 4b3fa4742b Use reset instead of assignment when updating auto_ptr/unique_ptr 2014-10-02 18:47:07 +01:00
Phil Nash b1936d3b0e Calls method of FatalConditionHandler (to avoid warnings) 2014-10-02 18:28:45 +01:00
Phil Nash ee3b265aa1 build 5 2014-09-18 18:25:10 +01:00
Phil Nash b62a1b5334 Moved RandomNumberGenerator out of function and pass in a named instance instead of a temporary - both for C++03 compatibility reasons 2014-09-18 18:24:41 +01:00
Phil Nash 16a7db036f enable nullptr for VS2010 2014-09-18 18:23:47 +01:00
Phil Nash 73a0744452 Backed out PR #307 (use nullptr from VS2005) as it seems clr specific 2014-09-17 18:06:47 +01:00
Phil Nash 6492560394 Made sorting functors const 2014-09-15 23:36:39 +01:00
Phil Nash 9630454b0f Added missing #include 2014-09-15 23:32:13 +01:00
Phil Nash 6a8e8ada0d build 4 2014-09-15 18:40:24 +01:00
Phil Nash fa0122bf54 Allow testing ordering to be specified as declaration, lexicographical, or random. Allow random seed to be specified 2014-09-15 18:39:31 +01:00
Phil Nash ea33961b43 Factored out mention of "unprintable string" ("{?}") 2014-09-08 08:14:59 +01:00
Phil Nash 3e1d3c7271 Give (currently not used, so global only) group a name 2014-09-08 08:14:22 +01:00
Andy Sawyer 022a0b4fcb catch_tostring: toString for std::tuple 2014-09-04 00:31:11 +01:00
Andy Sawyer 3196937343 catch_tostring: Add includes for tuple, type_traits 2014-09-04 00:17:36 +01:00
Andy Sawyer 95956444b7 catch_tostring: Move toString overload declarations
- Put all the declarations of the overloads early in the file, so they
  get seen by the templates later on
2014-09-04 00:12:25 +01:00
Phil Nash 4caabfa45e build 3 2014-09-03 19:23:22 +01:00
Phil Nash fcf5ef0db6 Changed time function name to reflect that it actually returns Microseconds as reported in #323 2014-09-03 19:20:23 +01:00
Phil Nash dd22431fea Merge branch 'develop' of github.com:philsquared/Catch into develop
# By Andy Sawyer
# Via Andy Sawyer (1) and Phil Nash (1)
* 'develop' of github.com:philsquared/Catch:
  catch_tostring: tostring for enum class types
  SelfTest: Build as C++11, add EnumToString tests
  SelfTest: refresh makefile
2014-09-03 08:40:07 +01:00
Phil Nash 3eefa7f537 use nullptr in MSVC from 2005+
(based on PR #307 - thanks alex85k)
2014-09-02 08:30:57 +01:00
Andy Sawyer cd2a5aa688 catch_tostring: tostring for enum class types 2014-09-01 17:38:17 +01:00
Phil Nash 93b61e1194 v1.1 build 2 (develop branch)
- Signal hander support
2014-08-22 19:35:41 +01:00
Phil Nash 05743eeaa1 FatalErrorConditions now full close reporter states
- so the console reporter(s) show final summary and the xml reporters close their tags
2014-08-22 19:33:28 +01:00
Phil Nash c1a8e1c5dd Added signal handlers (and placeholder for SEH handlers)
- based on PR 232 (https://github.com/philsquared/Catch/pull/232 - thanks Lukasz Forynski)
- Writes to reporter, so gets all the usual context, but then exits directly (since the stack cannot be resumed) so no summary
- On Windows does nothing, as yet.
2014-08-22 08:07:39 +01:00
Phil Nash b7e432eadc Updated version for develop branch 2014-08-20 19:07:46 +01:00
Phil Nash 544bf33e73 build 53
includes wchar_t toString overloads and SCENARIO_METHOD macros
2014-08-20 08:09:32 +01:00
Phil Nash 7bc0b44597 Merge branch 'master' of https://github.com/jbrwilkinson/Catch
# By James Wilkinson
# Via James Wilkinson
* 'master' of https://github.com/jbrwilkinson/Catch:
  Added SCENARIO_METHOD for BDD testing with fixtures.
2014-08-19 08:13:30 +01:00
Ben Arnold 7b0a84a048 toString handles wchar_t raw strings 2014-08-14 12:28:23 +01:00
Phil Nash 0aae635035 Re-enable warnings disabled for GCC 2014-07-28 07:27:05 +01:00
Fabien Caylus ae76945eaf Hide warnings with GCC 2014-07-27 15:16:10 +02:00
James Wilkinson 63005a1d89 Added SCENARIO_METHOD for BDD testing with fixtures. 2014-07-10 10:22:20 +01:00
Phil Nash 28c2e07879 build 52 2014-07-09 19:22:49 +01:00
Phil Nash 76f80a670b More summary formatting tweaks 2014-07-09 19:20:24 +01:00
Phil Nash cab9141eec Green summary bar is darker if not all passed
- and the green part now comes at the end (to emphasise the failures)
2014-07-09 18:24:24 +01:00
Phil Nash d89e74faff Format floats like doubles when printing - but add ‘f’ suffix (a lá #291) 2014-07-09 18:16:40 +01:00
Phil Nash ce56209250 build 51 2014-07-09 07:40:37 +01:00
Phil Nash 23181eeef0 Section no longer relies on copy-elision for correctness
- should address #293
- *may* address #271
2014-07-09 07:39:57 +01:00
Phil Nash a469d9bc0f Made Colour copyable to remove warning 2014-07-09 07:36:12 +01:00
Phil Nash a31f05fe83 Removed C-style casts 2014-07-09 07:35:34 +01:00
Phil Nash 94a1acf766 More tweaks to summary format 2014-07-03 19:06:59 +01:00
Phil Nash 52e1e7414a build 50 2014-07-03 08:11:38 +01:00
Phil Nash 9c1f9a8f9a Added [!mayfail] tag to indicate test case that can fail without failing the suite.
Overhauled the summary report (including the expected failure count)
2014-07-03 08:09:57 +01:00
Phil Nash acdd3b5745 Build 49
- _THROWS fix
- tag aliases
2014-06-30 07:35:36 +01:00
Phil Nash 1d210ebd37 Tag aliases feature 2014-06-30 07:33:17 +01:00
Phil Nash 006aafd982 Some clean-ups for string handling in Objective-C 2014-06-20 18:05:31 +01:00
Phil Nash 11cf45bc41 Fixed regression with -e 2014-06-05 18:11:31 +01:00
Phil Nash ab03668c55 build 48
- big assertion capture refactoring
2014-06-02 07:48:03 +01:00
Phil Nash be9fe76101 Renamed ShouldNegate to FalseTest 2014-05-29 08:00:20 +01:00
Phil Nash 10801c2876 Folded ExpressionResultBuilder into ResultBuilder
(even more SRP violations!)
2014-05-29 07:50:19 +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 7cbf74061b Tweaked rawMemoryToString() along lines of suggestion in #281 2014-05-23 18:41:02 +01:00
Phil Nash 48fac9cf01 build 47 2014-05-20 19:02:37 +01:00
Phil Nash d12c00666a Make TagInfo non-local 2014-05-20 19:02:10 +01:00
Phil Nash 9241e436f9 Build 46
- Fixes some test spec parser issues and some warnings (compiler and analysers)
2014-05-20 18:50:59 +01:00
Phil Nash 5daa22dcc3 Fixed dereferenced null issue 2014-05-20 18:49:28 +01:00
Phil Nash 59d556907d Attempt to prevent analyser warnings about dereferencing null. 2014-05-20 18:41:34 +01:00
Phil Nash 2c9e9ac004 Fixed space separated lists of test specs
- they form an AND expression. They were forming an OR expression due to changes made to fix -f - so that had to be fixed differently
2014-05-20 18:28:19 +01:00
Phil Nash b43d7703e5 Tests hidden with legacy ./ prefix tagged as hidden 2014-05-20 18:11:23 +01:00
Phil Nash fbf3f6f879 Fix case sensitivity when matching tags
(now insensitive again)
Also group case-different tags together when listing
2014-05-20 18:03:54 +01:00
Phil Nash e21d0b29cc Killed a couple more warnings (one for VS2010 and one for Clang) 2014-05-19 19:04:38 +01:00
Phil Nash 3bdc97d8ad Suppressed a load of warnings 2014-05-19 18:57:14 +01:00
Phil Nash ebd4888fe1 build 45
- fixes
2014-05-19 18:22:59 +01:00
Phil Nash e8aa0bb19b Fixed issue with reading test names from file 2014-05-19 18:20:44 +01:00
Phil Nash fcf0deb116 Fixed issue with wildcards at the start of a string 2014-05-19 18:07:53 +01:00
Phil Nash b5d1cfe441 Suppress switch statement warning 2014-05-19 17:57:01 +01:00
Phil Nash ee956bc94e Fixed isHidden regression 2014-05-19 17:50:58 +01:00
Phil Nash 65cc14c44e build 44
- new name/ tag parser (fixes #279)
2014-05-16 18:54:48 +01:00
Phil Nash 9bf43e7875 Refactored last usages of old tag parser and removed all the, now redundant, tag parsing code 2014-05-16 18:52:55 +01:00
Phil Nash b1e7d161b5 Moved catch_test_spec.h to catch_test_spec.hpp 2014-05-16 18:28:58 +01:00
Phil Nash ae75b3774a Switched over to new name/ tag parser 2014-05-16 18:24:07 +01:00
Phil Nash 56b8d3a5f9 Moved new test spec code into appropriate header
- about to remove old test spec code and rewire throughout the codebase!
2014-05-16 07:23:31 +01:00
Phil Nash f8cff10ff6 First cut of new test spec parser code 2014-05-16 06:50:00 +01:00
Phil Nash ad4489043b Unanonymised unions to avoid breaking on compilers that don’t support them
- e.g. GCC 4.3 and 4.4
- fixes #281
2014-05-13 17:48:47 +01:00
Phil Nash 4e044ed4b1 build 43
- removed some pragmas
2014-05-04 09:23:30 +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 5a2df71b41 build 42: “compact” reporter
- thanks to Martin Moene
2014-05-01 19:07:02 +01:00
Phil Nash 4e9484ba30 Adjusted some elements of style in compact_reporter 2014-05-01 19:03:56 +01:00
Phil Nash c02c7003dc Merged Martin Moene’s “compact reporter” 2014-05-01 07:27:57 +01:00
Phil Nash 9f1e054a42 Suppress some more warnings 2014-05-01 07:03:06 +01:00
Phil Nash 174049532e Build 41
- fixes
2014-04-23 18:19:49 +01:00
Phil Nash 1a6f2a0a80 Changed the way noexcept support is handled to (hopefully) fix #275 and #273 2014-04-23 18:19:19 +01:00
Phil Nash f1928b7f24 Include missing <cstring> header
- should fix issue #274
2014-04-23 17:51:30 +01:00
Phil Nash aef6cd5332 build 40
- Fixed endianness when converting numbers to hex strings
- Added option to show invisibles (/t, /n) in printed strings with -i
- moved toString() impls to impl file
- avoid allocations for static strings used in reporter
2014-04-23 07:10:10 +01:00
Phil Nash 328a469c03 Moved tostring impl into catch_tostring.hpp 2014-04-23 07:03:15 +01:00
Phil Nash 97150f27ac Renamed catch_tostring.hpp catch_tostring.h
- in preparation for splitting implementation into catch_tostring.hpp
2014-04-23 06:51:58 +01:00
Phil Nash 7059b2cdac Added ability to show “invisibles” in strings (just tabs and newline chars, for now). 2014-04-22 18:23:42 +01:00
Phil Nash f219194199 Replace some static strings with static char*s for leak detection friendliness (h/t #272) 2014-04-22 17:54:29 +01:00
Phil Nash 48153e8e10 Considers endianness when printing raw memory into a string 2014-04-22 08:19:11 +01:00
Phil Nash a020865990 Sections are, once again, eagerly entered.
When the section tracking code was rewritten a while back to simplify and iron out some bugs the order of evaluation was changed so that each new section was skipped on the first run through.
This had unwelcome consequences for some people.
This commit restores the original semantics (while maintaining the simpler, less buggy, new code).
2014-04-21 19:02:38 +01:00
Phil Nash d7e1790347 Merge branch 'master' of https://github.com/gnzlbg/Catch
# By gnzlbg
# Via gnzlbg
* 'master' of https://github.com/gnzlbg/Catch:
  Conditionally removes usage of deprecated features

Conflicts (resolved):
	include/internal/catch_common.h
	include/internal/catch_section.hpp
2014-04-18 08:49:35 +01:00
Phil Nash 9d469b6cb5 build 37 2014-04-18 08:30:31 +01:00
Phil Nash 7303b2b60e Changed branchName to char*, as per #266 2014-04-18 08:28:52 +01:00
Phil Nash 970127e488 Removed some unnecessary core macros 2014-04-16 18:01:31 +01:00
Phil Nash 20cad7cb1d Tags beginning with a non alpha-numeric character are now disallowed.
Added !throws special tag which denotes a test case to be skipped when run with -e
(the idea being that the test case is expected to throw an exception which is not caught within a XXX_THROWS assertion).
2014-04-15 18:44:37 +01:00
Phil Nash c5406a25bf build 35 2014-04-12 19:21:08 +01:00
Phil Nash 1bccc03213 Secondary fix for #270 (addresses same issue with CHECK) 2014-04-12 19:20:46 +01:00
Phil Nash a176b93738 Fix for #270 (REQUIRE continues if test throws an exception).
Added test case that reproduced the bug then applied the fix.
2014-04-12 19:07:24 +01:00
Phil Nash af8cd98f20 New version of Clara that fixes operator= issue with ref member (#265) 2014-03-24 18:15:04 +00:00
gnzlbg ce6598599b Conditionally removes usage of deprecated features
-add macros to test for C++ version and features
to catch_compiler_capabilities.hpp
- replaces dynamic exception specifications (deprecated)
with noexcept in C++ Version >= 11
- defines defaulted copy constructor/move constructors/assignment
in C++ Version >= 11 since their implicit generation is deprecated
under some circumstances.
- fixes #259
2014-03-20 14:03:51 +01:00
Phil Nash 472dc2a61f New version of Clara
- interface changed slightly
- moved clara.h and tbc_text_format.h into “external” folder
2014-03-17 18:40:58 +00:00
Phil Nash f9df35b12b Fixed instance of Clara::_ placeholder when using CATCH_CONFIG_RUNNER 2014-03-10 18:02:18 +00:00
Phil Nash dd2810d60a build 30
- with Clara fix for null deref crash
2014-03-07 06:58:33 +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 fd879f7e77 Build 28
- new version of Clara
- removed command line tests
2014-03-06 08:17:24 +00:00
Phil Nash b9fea75109 New version of Clara.
- updated command line setup with new API
- updated STITCH macros
- force embedded Clara to use Catch’s console width (but restore it after)
- remove command line tests (as these have now moved into the Clara project)
2014-03-06 08:16:06 +00:00
Phil Nash 1f1ee3c63d New version of Clara
- Clara now built with new stitch script (based on generateSingleInclude)
- also fixed python scripts for python 3 (print now a function rather than a keyword)
2014-03-01 10:38:14 +00:00
Phil Nash 1c2fbe146b build 26 2014-02-11 18:12:41 +00:00
Phil Nash 5845ae94aa Added private assignment operator to fix VS2010 issue
- thanks to Kosta (#239)
2014-02-11 18:11:06 +00:00
Phil Nash b15726beba Added #include for <memory> to Clara
- thanks again, Martin
2014-02-11 17:45:15 +00:00
Phil Nash 160b74d6c7 … and <stdexcept> 2014-02-11 17:41:11 +00:00
Phil Nash 633feaa4a6 Added #include <algorithm> to clara.h
- thanks Martin
2014-02-11 17:40:11 +00:00
Phil Nash 0dc49d1b57 Extracted stand-alone micro-library, tbc_text_format.h, from catch_text.h.
- use this version in clara.h so clara can stand alone.
2014-02-11 06:32:56 +00:00
Phil Nash b756243935 Fixed some comments 2014-02-10 17:31:31 +00:00
Phil Nash c98a97cf90 Tweaked Cliche macros/ names 2014-02-10 17:30:12 +00:00
Phil Nash 4554155e3d Made Clara a “Cliche” header, which will be usable independently of Catch.
- This is just a first step. It still has a dependency on catch_text.h, which also needs to be made a Cliche header.
- These then need their own homes on GitHub.
2014-02-10 17:20:30 +00:00
Phil Nash 7eb5acc183 build 25
- fix for #231
2014-01-08 17:17:31 +00:00
Phil Nash 46a1fc7615 Removed unnecessary union name 2014-01-07 17:43:18 +00:00
Phil Nash be890d0c15 build 24 2014-01-07 17:26:59 +00:00
Phil Nash e091018514 Fixes toString() for function pointers and added support for member function pointers.
- thanks to Malcolm Noyes for supplying sample code on which the solution here was based
2014-01-07 17:25:27 +00:00
Phil Nash 440a47011f Convert pointers to integrates when printing.
- handles function pointers that way too (otherwise printed as 1 by gcc and clang)
2014-01-04 19:12:05 +00:00
Phil Nash e45e3a139a Clara ignores anything after a lone — (double dash)
- this allows use within an environment that appends additional arguments that Clara will otherwise reject
- generated build 23
2013-12-23 10:24:06 +00:00
Phil Nash 91ef5f7d40 build 22 2013-12-20 19:06:26 +00:00
Phil Nash 886d9d397c Reporter command line parser errors more eagerly
- show all “unrecognised option” errors
2013-12-20 19:06:02 +00:00
Phil Nash f385a0b13d build 21 2013-12-19 18:42:25 +00:00
Phil Nash 1aa60fada9 Changed Approx::toString() to be implemented in terms of toString( double ) (as proposed in #233) 2013-12-19 18:41:55 +00:00
Phil Nash eb760f689b Build 20 2013-12-18 08:38:33 +00:00
Phil Nash 9e529853ee Fixes compiler error for some versions of GCC
- Manual application of PR #196 (couldn’t merge)
- See also #226
2013-12-18 08:37:23 +00:00
Phil Nash 557b3bdbe3 Made SUCCESS variadic too (optional stream) 2013-12-14 23:16:03 +00:00
Phil Nash 2851b4a55a Try again with nullptr compatibility check in GCC 2013-12-14 23:04:06 +00:00
Phil Nash 9d7b77956c build 19
- fixes nullptr regression (I had accidentally left in some dev changes)
2013-12-14 22:53:28 +00:00
Phil Nash 859760abb4 Build 18 2013-12-14 14:34:05 +00:00
Phil Nash 563429d9a3 Compile in CATCH_CONFIG_CPP11_NULLPTR for some compilers 2013-12-14 14:32:26 +00:00
Phil Nash b4625208d0 Test for FAIL that doesn’t take an argument 2013-12-14 14:30:58 +00:00
Phil Nash 274ed3ea76 Allow FAIL() to be empty 2013-12-12 23:02:31 +00:00
Phil Nash a6d74bd55a Build 17 2013-12-11 08:28:15 +00:00
Phil Nash 0b63e0d868 Fixed warnings for platforms that don’t implement CATCH_BREAK_INTO_DEBUGGER
- as discussed in #229
2013-12-11 08:26:56 +00:00
Phil Nash a1e87a4b7d trim test/ section names in xml reporter
- BDD-style test names have leading spaces for alignment in the console reporter
2013-12-10 08:20:46 +00:00
Phil Nash ef95020239 Stop overloading virtualise defined at multiple levels 2013-12-07 09:08:01 +00:00
Phil Nash de49ec4d7c Fixed broken single header following script change
- fixed the script (was missing #ifdefs)
- also fixed single include (Xcode) test project
- build 16
2013-12-04 20:25:14 +00:00
Phil Nash 87b20e8dab SourceLineInfo takes char*s instead of std::strings 2013-12-04 08:12:30 +00:00
Phil Nash 47a5ad3038 Normalised “hidden” tags 2013-12-04 07:58:39 +00:00
Phil Nash 3649fdf285 Build 15 2013-12-03 18:53:55 +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 8ba6555acd Merge pull request #224 from PetterS/cygwinfix
Fix fileno not always present. fileno(stdout) = 1.
2013-11-26 15:33:37 -08:00
Petter Strandmark c032dfa41c Fix fileno not always present. fileno(stdout) = STDOUT_FILENO.
This was a problem when compiling on Cygwin with gcc 4.8.
2013-11-26 23:20:05 +01:00
Phil Nash 5ecb72b9bb Build 14 2013-11-26 20:57:45 +00:00
Phil Nash 782c2b5891 Added ability to load names of tests to run from a file
- use -f to specify filename. Blank lines and lines starting with # are ignored
- also added --list-test-names-only to list test names out to file in a form that can be immediate read in by -f
2013-11-26 20:57:34 +00:00
Phil Nash 200197f0b2 Merge branch 'master' of github.com:philsquared/Catch 2013-11-19 07:22:24 +00:00
Phil Nash 337dc25ed7 Converted all test case names to "modern" style (freeform text + tags) 2013-11-19 07:21:03 +00:00
Adam Strzelecki d1e5480d95 std::auto_ptr is deprecated in c++11/c++0x
This will use std::unique_ptr on C++11 and remove deprecation warning.
2013-11-17 18:44:35 +01:00
Phil Nash 8d44f2dbb2 build 13 2013-11-13 08:10:45 +00:00
Phil Nash 4f57c8c589 Print warnings if no assertions and not running with -s 2013-11-13 08:07:38 +00:00
Phil Nash 2f086ae255 If no assertions print custom message 2013-11-12 19:06:08 +00:00
Phil Nash ecb9432763 Simplified and tidied test case and tag listing 2013-11-12 18:59:34 +00:00
Phil Nash 5320518dbc Build 12 2013-11-09 07:47:09 +00:00
Phil Nash 0712bbb251 Merge pull request #207 from Fraser999/list_tests_issue
List tests issue
2013-11-07 03:11:19 -08:00
Phil Nash c2b0c6fb08 Added missing #include for <vector> 2013-11-07 10:35:59 +00:00
Fraser Hutchison 6253386458 Fixes overflow issue when listing tests. 2013-10-24 02:53:13 +01:00
Phil Nash 93a945cee9 Fixed uninitialised members in Context object 2013-10-23 15:35:07 +01:00
Phil Nash 380f98ed1f Regenerated single include 2013-10-17 22:45:21 +01:00
Phil Nash 39ef46a02e Truncate excessively long messages rather than asserting 2013-10-17 18:02:38 +01:00
Phil Nash 0b097c26b6 Fix wrapping width when listing tests
- addresses #201
2013-10-02 08:07:52 +01:00
Phil Nash b4af9b9620 Merge commit '22ded1f2bb3caf96d90c2f1981ede29d3aeb1c74' 2013-09-25 18:48:53 +01:00
Phil Nash 41b27af45b Fix for comma separated tags on the command line
- also added more test for tags
2013-09-25 18:40:07 +01:00
Phil Nash 358b7b29e1 Eliminate a warning in the latest clang with Xcode 2013-09-24 07:41:18 +01:00
Andy Sawyer d6f23a9a36 catch_tostring : moved defintion of rangeToString
Detail::rangeToString is now defined after the various toString
overloads. This results in them being accessible with rangeToString is
instantiated (in this case, by StringMaker<vector>). This (sort-of)
fixes the problem where contained types are toString'd incorrectly.

Consider:
  std::vector<std::string> v { "abc" };

Before:
  Catch::toString( v ) == "{ abc }"
After:
  Catch::toString( v ) == "{ "abc" }"

(note the extra pair of quotes around the "abc" - these are added by
Catch::toString( std::string ) which is now called by rangeToString)
2013-09-21 18:45:42 +01:00
Andy Sawyer 0dbcf218c3 Add allocator support to StringMaker<vector>
- also extracted out 'rangeToString', in an attempt to make it easier
   to add support for other containers
2013-09-17 22:22:47 +01:00
Phil Nash 1e2f1d1603 Fixes toString forward reference issue:
- as raised in https://github.com/philsquared/Catch/pull/195
2013-09-14 19:58:45 +01:00
Phil Nash f7378eebb6 Fixed string indexing bug 2013-09-07 12:07:38 +01:00
Phil Nash 638cf9feb4 Separated out catch_platform.h 2013-08-16 19:08:39 +01:00
Phil Nash 46118714b1 Build 8
- includes command line tweaks and fixes for durations
2013-08-16 19:01:32 +01:00
Phil Nash 1870ca8455 Some Clara/ command line clean-up and tweaks 2013-08-16 18:57:57 +01:00
Phil Nash f41fad7e20 Don't report durations if not reporter anything else 2013-08-16 18:57:41 +01:00
Phil Nash 357d654641 Added missing assert include 2013-08-16 08:01:16 +01:00
Phil Nash 3faa412855 Removed basic reporter 2013-08-15 19:09:07 +01:00
Phil Nash aa7123b696 Build 7
- New Junit reporter
- New Timer class
2013-08-15 19:01:00 +01:00
Phil Nash d68510d6e3 Removed legacy JUnit reporter 2013-08-15 18:49:38 +01:00
Phil Nash 2ddb9d3802 Completed CumulativeReporterBase and reimplemented JUnitReporter in terms of it 2013-08-15 18:39:55 +01:00
Phil Nash 1f519dd856 Added LazyStat wrapper 2013-08-08 08:24:37 +01:00
Phil Nash 29ccaa67ad Replaced currentSectionInfo and m_rootSection with m_sectionStack 2013-08-08 08:05:19 +01:00
Phil Nash 6339254cb2 First cut of Timer class.
- started integrating with reporters (now (optionally) supported in console reporter).
- introduced Node<> template to help with cumulative reporting and used it instead of ThreadedSectionInfo.
2013-08-07 18:56:35 +01:00
Phil Nash 649f8c24b1 Removed now redundant handling for missing assertions in test cases
- handled as part of sections
2013-07-26 19:28:34 +01:00
Phil Nash e8cf726a23 Refactored missing assertions handling 2013-07-26 19:26:08 +01:00
Phil Nash b80280f428 Tidied up reporting of missing assertions in test cases
- also removed basic reporter from approval test
2013-07-26 19:19:44 +01:00
Phil Nash 801672b962 Fix MSVC warning 2013-07-25 08:18:09 +01:00
Phil Nash 8a52a39fdc Build 6
- fixes infinite loop bug (#185 and #166)
2013-07-25 08:12:03 +01:00
Phil Nash 28d3881ff9 Merged TestCaseTracker and SectionTracker and introduced TestCaseTracker::Guard 2013-07-25 08:07:55 +01:00
Phil Nash ee647f5099 Removed displaced RunningTest class 2013-07-25 07:49:00 +01:00
Phil Nash 9aff9aa328 Integrated new section tracker.
- also pass extra section to reporter - one for each test case - ignore it in headers
  (this is so we know a test case has restarted)
- significant effect on regression test due to change of ordering of sections
- fixes infinite loop issue
2013-07-24 19:13:08 +01:00
Phil Nash 6a484fdb02 Reworked SectionTracker and moved into own header 2013-07-23 18:48:36 +01:00
Phil Nash 372a6c6fed Small fixes and started new section tracking code 2013-07-23 08:15:34 +01:00
Phil Nash f3d1f08c3b Removed all trailing whitespace
- addresses #105
2013-07-03 19:14:59 +01:00
Phil Nash 503d5d0c8e Converted stray tabs to spaces 2013-07-03 08:25:11 +01:00
Phil Nash ad7445d33c build 5
- added throw() to streambuf destructor overrides (#182)
2013-07-02 08:49:29 +01:00
Phil Nash 3907559896 build 4 2013-07-01 19:02:29 +01:00
Phil Nash 066a6388d6 Fix for #179 2013-07-01 18:45:19 +01:00
Phil Nash ba9b2b5a37 Use MFCs windows include if present 2013-07-01 18:44:40 +01:00
Phil Nash 4b5e008b20 guard NOMINMAX definition (windows) 2013-06-29 20:31:17 +01:00
Phil Nash cd688300b0 Build 2 2013-06-29 12:11:32 +01:00
Phil Nash 5d26ca1af7 Static assertion for && and || expressions 2013-06-29 12:07:33 +01: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 0d357302a0 INFOs only reset at assertion if consumed 2013-06-28 16:25:49 +01:00
Phil Nash 9c39a5e8dd Support [.] as alias for [hide] 2013-06-28 16:05:13 +01:00
Phil Nash 235204393a Big merge from Integration
- now v1.0 build 1
2013-06-28 14:11:28 +01:00
Phil Nash a76d93ad54 Removed filename from --reporter option
(it's not implemented yet)
2013-06-26 08:42:05 +01:00
Phil Nash 5ddd6e31e4 Added #define NOMINMAX
- thanks to @robson3 in #171
2013-06-14 19:18:13 +01:00
Phil Nash 7d5f2715ce Fixed script for new readme
- updated README with new version
- fixed casing error for -e opt description
2013-06-07 21:15:25 +01:00
Phil Nash 786959d535 build 39 2013-06-07 19:07:50 +01:00
Phil Nash 11381c146c Tweaked indentation of errors and test lists 2013-06-07 19:06:30 +01:00
Phil Nash 27cae858d0 Use Text formatter to list reporters 2013-06-07 18:56:43 +01:00
Phil Nash 80557647d6 re-encapsulated session vars.
- construct Config object lazily
2013-06-07 18:41:22 +01:00
Phil Nash 8fde14313b Session vars are public 2013-06-07 08:04:05 +01:00
Phil Nash f438e04b5d list options return number listed 2013-06-06 22:54:42 +01:00
Phil Nash e035e2835d tweaks 2013-06-06 18:56:43 +01:00
Phil Nash a7e657fd9b Refactored new Session class to make it more friendly for custom client code 2013-06-06 18:51:24 +01:00
Phil Nash c1196b6245 Moved all Catch::Main()s into new Session class
- renamed them run()
- moved cleanUp call into destructor
2013-06-05 18:48:18 +01:00
Phil Nash cb60d130f8 Runner -> RunContext, Runner2 -> Runner and fixed issue with processName 2013-06-05 08:18:52 +01:00
Phil Nash 1b47e11387 Added processConfig() method 2013-06-04 22:49:14 +01:00
Phil Nash 2ed56c47a6 Removed legacy cli parser 2013-06-04 08:38:40 +01:00
Phil Nash aee9b75e37 Now fully switched over to Clara-based command line with modified args 2013-06-04 08:37:28 +01:00
Phil Nash 0514fe4f38 Got parseCommandLine ready to use new Clara (but not doing so yet) 2013-05-31 18:48:31 +01:00
Phil Nash f330fe7ef9 Made generated function name more obvious (for quickly finding in debugger's stack viewer) 2013-05-31 08:11:01 +01:00
Phil Nash c9f0f55451 Last changes to ConfigData names (for now) 2013-05-31 08:01:56 +01:00
Phil Nash 40e529740c Removed stream name from config 2013-05-29 19:06:25 +01:00
Phil Nash 3f184e22e8 ConfigData now looks virtually identical to the Clara test Config 2013-05-29 19:01:06 +01:00
Phil Nash 20ddb0055f ConfigData just keeps strings for test names/ specs/ tags (processed in Config actor) 2013-05-29 18:56:29 +01:00
Phil Nash c2ca80d9fb Config refactoring: split List enum into three bools 2013-05-29 18:42:46 +01:00
Phil Nash 3c3beb57c3 More config refactoring 2013-05-29 18:34:11 +01:00
Phil Nash be8fd82f20 Started nudging ConfigData towards new layout 2013-05-29 08:12:57 +01:00
Phil Nash f6892bfdf0 Listing is now in terms of interface (and calls to bool functions) 2013-05-29 07:59:01 +01:00
Phil Nash 6b8837bd93 Final refactoring to remove direct access to encapsulated ConfigData once in Config 2013-05-28 19:07:29 +01:00
Phil Nash 43fe6c6e9e Main() functions deal with raw ConfigData 2013-05-28 18:59:29 +01:00
Phil Nash ca9b92f8fa Most of system now uses Ptr<IConfig const> 2013-05-28 18:51:53 +01:00
Phil Nash e1459955f1 Refactoring towards interface based config 2013-05-28 18:39:32 +01:00
Phil Nash 10fa0593db Moved Clara into its (her?) own file 2013-05-27 10:52:58 +01:00
Phil Nash d4305377b7 Fixed inconsistency in reporting of _FALSE (negated) expressions 2013-05-17 19:35:33 +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 8defc71e6d Build 38 2013-04-24 19:10:02 +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 2a9d8d9e36 Changed "const X ref"s to "X const ref"s
- Brought older code up to current convention (with the help of a Python script)
2013-04-23 18:58:56 +01:00
Phil Nash d0d4d93a6b Build 37
- string matchers work with NULLs
- removed stray CATCH_CONFIG_SFINAE for GCC 3
2013-04-23 08:02:48 +01:00
Phil Nash 06548a5b61 Fix for #144
- string matchers now work with NULLs
2013-04-23 07:59:56 +01:00
Phil Nash c887d1a167 Removed rogue CATCH_CONFIG_SFINAE for GCC 3.x 2013-04-22 22:20:42 +01:00
Phil Nash 471eba2c32 Build 36
- incorporation of pull request #154 to allow comparison with nullptr_t
- some compiler capability tweaks
2013-04-22 18:55:12 +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 dd52044374 Build 35
- non-SFINAE IsStreamInsertable
2013-04-20 23:20:05 +01:00
Phil Nash 9fff9e47d3 Complete disable CATCH_SFINAE for now 2013-04-20 23:18:44 +01:00
Phil Nash 003960dc90 Returned to older version of IsStreamable
- this time based on code from Martin Moene
https://gist.github.com/martinmoene/5418947#file-insertionopdetector-cpp
2013-04-20 23:12:17 +01:00
Phil Nash 19279250e8 Build 34
includes:
- SFINAE version of IsStreamable (where available)
- new Text class that replaces LineWrapper (internal)
- fix for spurious double exception reporting (#164)
2013-04-20 21:07:32 +01:00
Phil Nash 2666c96d4e Fixes issue #164
- Removed spurious (re-)throw when catching unexpected exception
2013-04-20 21:04:32 +01:00
Phil Nash b3acf45d70 Fully committed to new Text class.
- moved impl into .hpp
- replaced last few uses of LineWrapper with Text
- removed LineWrapper
2013-04-20 19:36:40 +01:00
Phil Nash 97d99852a8 Refactored line wrapping in Text constructor a bit 2013-04-20 18:41:00 +01:00
Phil Nash 54ca219aad Text class is now full replacement for LineWrap 2013-04-20 11:27:28 +01:00
Phil Nash 7059c6e1c3 Text class mostly working
- tabs not yet working
2013-04-19 19:08:32 +01:00
Phil Nash 052dc18c76 Remove SFINAE support for all unknown compilers 2013-04-18 07:40:19 +01:00
Phil Nash bd5910ef9f Moved line info in header again 2013-04-17 00:05:25 +01:00
Phil Nash 5062d3e92b Added (conditional) SFINAE support.
Better streamable detection for toString using SFINAE (falls back to non-SFINAE version without)
2013-04-16 22:55:31 +01:00
Phil Nash 243f2d2caf build 33 2013-04-12 10:43:06 +01:00
Phil Nash cd9c72c66f Fixed BrightGreen in ANSI/ Posix case
- was yellow :-s
2013-04-09 19:49:58 +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 1ece38ed20 Moved legacy_reporter_adapter files back into internal 2013-04-08 21:36:08 +01:00
Phil Nash 3bd4241795 Fixed Junit issue with REQUIRE_THROWS
- As mentioned by @SebDyn in GitHub issue #5
2013-04-08 12:05:32 +01:00
Phil Nash 8764177c0e build 32 2013-04-08 11:50:41 +01:00
Phil Nash 7af7451f78 LegacyReporterAdapter unbundles INFO messages from assertion to mimic legacy behaviour
- Moved LegacyReporterAdapter out into its own file(s)
2013-04-08 11:44:03 +01:00
Phil Nash 12c16fff8d Build 31
- new Colour class
- Headers are wrapped, with special indentation for given/ when/ then
2013-04-05 20:58:01 +01:00
Phil Nash 4746caacaf LineWrapper can indent first line differently to subsequent lines
- use this to wrap Given/ When/ Then with indent after the :
2013-04-05 20:55:57 +01:00
Phil Nash f186a912d4 Switched TextColour out for Colour
- Removed TextColour
2013-04-05 07:59:28 +01:00
Phil Nash a3703faa0a First cut of new Colour class (to replace TextColour) 2013-04-05 07:47:36 +01:00
Phil Nash 5c7d3d75cc build 30 2013-04-01 11:27:10 +01:00
Phil Nash 2c90533a26 More formatting/ colour tweaks 2013-04-01 11:25:54 +01:00
Phil Nash 67e9f01d38 Added some more wrap chars 2013-04-01 10:30:36 +01:00
Phil Nash 2a17ef9081 Use SecondaryText code in lists 2013-03-29 21:55:19 +00:00
Phil Nash c7e602f3f2 Added SecondaryText colour enum
- slightly refactored ConsoleColour as well
2013-03-29 21:39:43 +00:00
Phil Nash 38f7eef6fe build 29 2013-03-29 13:44:33 +00:00
Phil Nash e324d2829d Added -l tags
- which lists available tags.
- also improved formatting of -l for tests
2013-03-29 11:42:10 +00: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 9e8abc33e7 Simplified StringWrapper
- by changing intoStream to << overload
- and removing redundant ctor
2013-03-27 23:36:58 +00:00
Phil Nash b052bd729a Refactored string wrapper
- to be much more flexible (writes to vector)
- fixed a couple of bugs
2013-03-27 19:08:16 +00:00
Phil Nash dd26e889b5 Build 28 2013-03-25 09:25:31 +00:00
Phil Nash c563f6b1be Wrap expr results if they contain newlines 2013-03-25 09:24:13 +00:00
Phil Nash 2927c240a1 Fixed line wrap bug
Added line wrap tests and modified wrap algo to wrap within words using a -
2013-03-25 09:20:51 +00:00
Phil Nash 2e3c5fa2ad Addressed some warnings (mostly MSVC) 2013-03-25 08:46:48 +00:00
Phil Nash 6ba2057abd refactored toLower 2013-03-22 19:00:42 +00:00
Phil Nash bd7f797e09 build 27 2013-03-21 09:00:24 +00:00
Phil Nash 3453639732 tags can be specified using -t (or as default command)
Previously -g had to be used
2013-03-21 08:59:05 +00:00
Phil Nash 49d7ce40e8 Minor tidy up 2013-03-21 08:58:22 +00:00
Phil Nash 444f4ddc60 Variadics support for BDD macros (scenarios) 2013-03-16 20:39:19 +00:00
Phil Nash 9390675260 Build 26 2013-03-16 20:21:51 +00:00
Phil Nash a46ee0222a Print ~~~ at start of console output.
Some cleanup in the reporter code
2013-03-16 20:19:38 +00:00
Phil Nash c0b698073e Initial support for variadic macros 2013-03-16 20:18:52 +00:00
Phil Nash 9c5bbab239 build 25 2013-03-13 20:54:19 +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 dc2735c23d Removed some cruft and warnings 2013-03-13 08:04:50 +00:00
Phil Nash 7542685a2f Moved "no test cases matched" message to reporter 2013-03-12 19:06:40 +00:00
Phil Nash 6d56d71318 build 24 2013-03-12 18:49:37 +00:00
Phil Nash 32e70b2235 Fixes nil NSString issue reported in #159 2013-03-12 18:49:22 +00:00
Phil Nash 17479c6e49 Tag and test case name querying are now case insensitive 2013-03-12 18:47:53 +00:00
Phil Nash d78cfe1275 Tweaked colours again 2013-03-12 18:47:01 +00:00
Phil Nash 3df6c0d1b4 Refactored ConsoleColour impl. Tweaked the (Windows) colours a bit.
Also fixed issue that would cause warnings on some compilers when doing REQUIRE( p ); where p is a pointer.
Moved to build 23
2013-03-11 18:38:29 +00:00
Phil Nash a04981b450 Build 22 2013-03-08 09:30:25 +00:00
Phil Nash e57a56bb28 Converted tabs to spaces in some files where they have crept back in 2013-03-08 09:26:20 +00:00
Phil Nash b7ff995e89 Tidied up some loose ends with reporting test cases and sections (now handles them as a single block).
This should fixes an issue where sections not being printed when they should be (and reverses a workaround where they were being printed too much)
2013-03-06 20:40:16 +01:00
Phil Nash 90b2bfec3d Patched issue where an assert before the first section can cause a set-fault (needs a better fix, though) 2013-03-04 15:06:31 +01:00
Phil Nash 767f1588dc Added StringMaker (for partially specialising string conversions), extended BDD macros and moved file/line info to top of message.
Re-enable ANSI colour by default - hopefully properly excluding Windows this time
2013-03-04 12:19:15 +01:00
Phil Nash ead139e094 Reverted ANSI colour change (it was failing for Windows)
Produced build 20
2013-02-19 19:59:04 +00:00
Phil Nash 5bdae8456c build 19 2013-02-19 19:47:18 +00:00
Phil Nash 10ed1e0e34 Handle section ends in the event of unexpected exceptions 2013-02-19 19:45:09 +00:00
Phil Nash ca79d19325 Suppress "no test cases matched" message if there was no test spec string 2013-02-19 18:41:57 +00:00
Phil Nash a8c6543bcc Merged Matcher changes to Objective-C bindings 2013-02-19 08:46:09 +00:00
Phil Nash 429699e797 Added className to TestCase in Obj-C 2013-02-19 08:39:28 +00:00
Phil Nash 7455c449ad Added class name to Obj-C test case 2013-02-19 08:34:30 +00:00
Phil Nash f45e09a416 Default to using colour in unix based terminals 2013-02-19 08:19:00 +00:00
Phil Nash dbcd833c72 Don't use ANSI colour codes when debugging 2013-02-18 13:02:49 +00:00