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