Commit Graph

637 Commits

Author SHA1 Message Date
Martin Hořeňovský ea48ae0f75 Add test for #914 (stringify truthy exprs in standard way) 2017-05-27 14:42:05 +02:00
Martin Hořeňovský 67914d8b86 Move back to static StringMaker<T>::convert
This avoids some breakage from the modernization
2017-05-21 23:40:05 +02:00
Martin Hořeňovský 85aa770701 Disable unreachable code warning for TrickyTests.cpp
Somehow this only triggers for VS 2015, Win32 | Release configuration...
2017-05-08 01:26:06 +02:00
Phil Nash bada67bb72 Rebased approvals 2017-05-05 18:28:04 +01:00
Martin Hořeňovský a9128d0fac More macros are now variadic
Also added tests for them
2017-05-03 19:10:27 +02:00
Martin Hořeňovský 33ed1773f4 Reworked stringification layer, removed Catch::toString
Now the order of stringification checks is

1) StringMaker specialization
2) operator<<

toString overloads and specializations have been removed.
2017-05-02 23:51:03 +02:00
Martin Hořeňovský e641485132 Updated approval tests 2017-04-29 17:54:10 +02:00
Phil Nash 51c143b2c6 Added test for assertion with comma 2017-04-26 16:12:48 +01:00
Phil Nash 8ccbf63f28 Removed Ptr, Shared and SharedImpl 2017-04-25 21:56:14 +01:00
Phil Nash cc8206f4c3 Removed SafeBool 2017-04-25 19:30:53 +01:00
Martin Hořeňovský 53864dee7b Fix MSVC compilation error
MSVC's `std::vector` requires its allocator to have copy constructor
from the same allocator kind, but templated over different type.
2017-04-25 19:54:22 +02:00
Martin Hořeňovský b245eaa7d1 Fix double-to-float conversion warning in tests 2017-04-25 17:48:28 +02:00
Phil Nash 61ac34045c Enabled SFINAE stream test 2017-04-25 14:57:58 +01:00
Phil Nash 79650e44f4 Removed more C++98/03 compatibility 2017-04-25 12:40:52 +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
Martin Hořeňovský fc7f0a02b8 v1.9.2 2017-04-25 11:08:02 +02:00
Phil Nash 714d01c07c approved tests that were correct the first time (previous approvals were erroneous) 2017-04-09 20:40:11 +01:00
Phil Nash 250f0ee7fb Added approvals for “failed as expected” tests 2017-04-07 09:33:19 +01: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ý 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ý 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
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 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ý a2e20b07f8 "Fix" build by annotating the new test as !shouldfail
The quick test under ctest checks only for no tests failing, not for the
expected output.
2017-03-07 10:17:59 +01: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ý 8b8e3ee117 Disable C4702 in Exception tests self tests
VS 2015 in Release mode sees through our indirection and complains.
There is no reason to make the indirectoin harder to reason about,
instead of just disabling the warning.
2017-03-06 10:52:21 +01: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
Phil Nash ff78e7c45a Fixed typo in test name 2017-03-01 15:59:10 +00:00
Martin Hořeňovský bbeb192ec9 Updated baselines 2017-02-27 16:27:43 +01:00
Martin Hořeňovský 8c07899715 Added tests for using margin with Approx. 2017-02-27 14:15:03 +01:00
Phil Nash e058a37614 Removed stray code 2017-02-23 08:11:15 +00:00
Martin Hořeňovský 0f24a8c06f Added Automake and TAP reporters to SelfTest's main 2017-02-22 13:28:36 +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
Phil Nash 10dfca34ac Added first vector matchers (Contains and Equals) 2017-02-21 16:05:04 +00:00
Phil Nash 4e6938d78e Moved matchers tests into their own file 2017-02-21 14:19:09 +00:00
Phil Nash 90b3946e9c Add file/line to TestCase, Section and Failure elements in Xml Reporter 2017-02-17 10:26:17 +00:00
Phil Nash 5530303be7 Removed test for invoking String Matcher with NULL (this will no longer be supported) 2017-02-14 09:16:54 +00:00
Phil Nash 1cb8bafb1f Added missing #include in test file 2017-02-13 17:43:43 +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
Phil Nash d2e814ff23 Tagged a C++11 specific test with [c++11] to exclude from approval tests (for now) 2017-02-10 19:13:45 +00:00
Phil Nash d6b8ac5a4e Added compilation tests to approvals 2017-02-10 11:53:29 +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
Phil Nash 4d0cd602e3 Rebased approvals with tags and description attributes in XML report 2017-02-07 23:14:49 +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ý 7db4d8d90c Added tests (single char pretty printing + op overload)
Tests for issue #809 -- Potentional operator overload ambiguity -- and
PR #646 -- Pretty print characters.
2017-02-07 13:32:48 +01:00
Phil Nash 197bf075c4 Rebased again - against the right executable this time :-s 2017-02-06 16:25:09 +00:00
Phil Nash 1f5ec9884c Rebased approvals following previous reversal (d’oh!) 2017-02-06 16:23:34 +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
Martin Hořeňovský f11a45aa67 Added benchmark for the char literals change 2017-01-29 23:23:33 +01:00
Martin Hořeňovský efab3ca8b2 Added benchmark result for the SourceLineInfo change 2017-01-29 22:10:37 +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ý 51107d7cbd Added copyright headers to benchmark files. 2017-01-25 22:42:41 +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
Phil Nash 6c23a6582b Mark CHECKed-throw test as [failing] 2017-01-24 09:53:04 +00:00
Phil Nash 7bcb42496d Changed exception tests to allow for now throw-from-CHECK behaviour 2017-01-23 17:56:41 +00:00
Phil Nash 225e90d8ba Don’t include tests that rely on varying two-phase-lookup behaviour in approval tests 2017-01-23 17:47:58 +00:00
Phil Nash 876af874f3 Added surrogate cpp for catch_test_case_tracker 2017-01-23 15:18:23 +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ý 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ý 877fd523bc Added benchmark with Mickey Rose's improvements. 2017-01-14 22:51:44 +01:00
Martin Hořeňovský 3b7511e564 First commit of benchmarks for Catch runtime perf.
So far its very much a WIP with some problems that are known already and
not very representative tests.
2017-01-14 21:55:37 +01:00
Phil Nash 9062ebe390 Removed make file (now generated from CMake) 2017-01-12 11:22:30 +00:00
Phil Nash b50572bbfd Renamed missing project explainer filename 2017-01-09 21:59:53 +00:00
Phil Nash 7bb3e859aa Removed all manually maintained project files in favour of instructions on how to use CMake to generate them 2017-01-09 17:38:42 +00:00
Phil Nash 0cde0e90a6 Added approvals for “Greater-than inequalities with different epsilons” test 2017-01-09 14:40:09 +00:00
Phil Nash 0f0dcd31eb Excluded two more C++11 tests from Approval tests 2017-01-09 14:37:28 +00:00
Phil Nash 62cbde369e Exclude test name from approval tests 2017-01-09 14:37:28 +00:00
Phil Nash 1ae84897d4 Marked tests that use C++11 features with [c++11] tag and exclude them from approval tests 2017-01-09 14:37:28 +00:00
Phil Nash 976a655496 Approval tests can use Catch path fixed in env. var, and convert nullptr and __null to 0 for comparison 2017-01-09 14:37:28 +00:00
Jonathan B. Coe 37e1e24309 add support for inequalities 2017-01-08 22:28:53 +01:00
Phil Nash 64193078bc Moved CMake into root folder (where it’s much happier - especially for CLion) 2017-01-06 16:00:00 +00:00
Phil Nash 79acc0504b Sort test ordering during Approval testing 2016-11-29 11:32:16 +00:00
Phil Nash 30cebd6177 Added some missing source files (including all SurrogateCpps) to CMake project.
Fixed up relative include paths to make this work.
2016-11-09 22:55:32 +00:00
Phil Nash 31861bbd46 rebased following recent changes 2016-09-27 10:28:11 +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
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 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
Phil Nash 447f53e9e3 Fixed !shouldfail 2016-03-14 19:13:34 +00:00
Phil Nash f895e0d95f Rebased approvals following colour changes 2016-02-29 08:13:27 +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
Phil Nash 5262e61e9d Approvals for Matcher change (added comma) 2015-12-10 18:43:29 +00:00
Phil Nash 84d1c080d6 Keep Xcode 7.1 happy 2015-12-04 10:21:07 +00:00
Phil Nash 722315a1f5 Removed some trailing whitespace 2015-12-04 10:20:33 +00:00
Phil Nash d274fc571c Added noexcept to CustomStdException destructor 2015-11-20 17:09:48 +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 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 71fd2c2fdf Fixed test names mentioning the new Matcher combinator operators 2015-11-06 18:07:28 +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 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 c81778ecd0 Fixed CMake file
(changed SectionTrackerTests.cpp - now deleted - to the new PartTrackerTests.cpp)
2015-11-03 17:06:24 +00:00