Commit Graph

214 Commits

Author SHA1 Message Date
Martin Hořeňovský 11295a2663 Make catch_stream.hpp a standard .cpp file 2017-08-10 11:45:05 +02:00
Phil Nash ee9b19efd3 Moved matcher-based capture macros into their own file
- this file excluded from the CATCH_CONFIG_DISABLE_MATCHERS path.
- matchers are always compiled in to the impl file
- _THROWS_WITH macros are still available with matchers disabled - but only the ones that take a string
- tests that use matchers have #ifdefs, so the whole SelfTest project can compile with matchers disable.
2017-08-09 12:10:14 +01:00
Phil Nash 8c95a81448 Removed all (well, most) of the redundant, ResultBuilder-based, code 2017-08-09 09:08:33 +01:00
Phil Nash f247ce5bff First cut of new AssertionHandler/ Decomposer
- integrated into INTERNAL_CATCH_TEST. Needs more work to fully replace existing stuff
2017-08-08 17:53:01 +01:00
Phil Nash f45d35c980 Added benchmark tests 2017-08-05 11:12:29 +01:00
Phil Nash a9b6813ad9 First draft of (experimental) benchmarking support 2017-08-04 19:23:30 +01:00
Martin Hořeňovský 85e14c5fb5 Move some compile-time dispatch to runtime
The runtime performance is likely to be negligible,
but compile times need every improvement they can get.
2017-08-01 21:58:09 +02:00
Martin Hořeňovský feca97dfde Split out internal error macros from the common path 2017-08-01 18:46:33 +02:00
Martin Hořeňovský d4e796c138 Move Section(End)Info bodies to proper .cpp file 2017-08-01 17:51:32 +02:00
Martin Hořeňovský 33fd54a673 Split Option<T> and TagAlias definitions away from the main include path 2017-07-27 11:55:30 +02:00
Martin Hořeňovský a75eaa3c5a Split out more headers into separate .cpp files 2017-07-27 11:32:02 +02:00
Martin Hořeňovský 9de729b515 General cleanup 2017-07-27 11:32:01 +02:00
Martin Hořeňovský 1a96175bb2 Split out helper functions on std::string from catch_common.h 2017-07-25 21:57:35 +02:00
Phil Nash cb6963216f Removed catch_section_info.cpp (not used) 2017-07-20 23:49:03 +01:00
Phil Nash b35225ff3a Removed tbc_text_format from CMakeLists.txt 2017-07-20 23:37:25 +01:00
Martin Hořeňovský 87a66b8479 Address results of PVS-Studio static analysis
Couple are left un-addressed, see #958 for details.
2017-07-20 00:27:28 +02:00
Martin Hořeňovský 4a1e898eae More method bodies moved out of line 2017-07-19 15:32:58 +02:00
Martin Hořeňovský edbe122761 Split out non-templated Approx methods into cpp file 2017-07-19 13:40:00 +02:00
Martin Hořeňovský 7ccf11da29 Split out catch_run_context into cpp and hpp file 2017-07-15 16:48:21 +02:00
Martin Hořeňovský 8d8f481597 Moved couple function's bodies out of common-include path 2017-07-12 16:07:27 +02:00
Martin Hořeňovský 4332b84c9b Moved leak detector to its own file 2017-07-12 15:03:52 +02:00
Martin Hořeňovský 1d3bfa0353 More include and impl refactoring 2017-07-10 14:25:38 +02:00
Martin Hořeňovský 5f3f19de08 Default included reporters are now also in .cpp files
The non-default ones remain as header files.
2017-07-10 11:33:18 +02:00
Martin Hořeňovský fc32165d48 Started work on splitting out .cpp files from header files 2017-07-06 22:28:42 +02:00
Phil Nash 78e7994435 Added string classes 2017-06-29 11:18:14 +01:00
Phil Nash 1c223b63ba Integrated (all) new version of Clara 2017-06-12 23:07:10 +01:00
Martin Hořeňovský 7f6773bb4d Merge branch 'master' into dev-modernize
Hopefully nothing went too wrong.
2017-06-05 17:19:42 +02:00
Martin Hořeňovský 1e16be0b9e Purge deprecated generators 2017-06-05 16:49:10 +02:00
Martin Hořeňovský da0edcbe25 Collect startup exceptions instead of throwing them
Previously, some errors in Catch configuration would cause exceptions to
be thrown before main was even entered. This leads to call to
`std::terminate`, which is not a particularly nice way of ending the
binary.

Now these exceptions are registered with a global collector and used
once Catch enters main. They can also be optionally ignored, if user
supplies his own main and opts not to check them (or ignored them
intentionally).

Closes #921
2017-06-04 21:39:27 +02:00
Martin Hořeňovský ea48ae0f75 Add test for #914 (stringify truthy exprs in standard way) 2017-05-27 14:42:05 +02:00
Antonio Di Monaco b8443e67da Added Win32 UNICODE wmain support (#903)
* Added wmain support
* Added appveyor.yml wmain configuration
* Added wmain configuration flag to CMake
2017-05-11 13:00:03 +02:00
Martin Hořeňovský 9ceae8f51f CMake binaries are now conditionally enabled
Defining NO_SELFTEST=1 when cmake configuration is being done now turns
off SelfTest and Benchmark executables. This is for projects that
consume Catch using ExternalProject_Add and don't want to build our
selftest binaries for their unit test suite.

Closes #897
2017-04-28 20:27:10 +02:00
Phil Nash 8ccbf63f28 Removed Ptr, Shared and SharedImpl 2017-04-25 21:56:14 +01:00
Phil Nash 97707afae1 Removed catch_type_traits from CMakeLists.txt 2017-04-25 11:09:06 +01:00
Phil Nash 073377a4e4 CMake defaults to C++11 2017-04-25 11:07:02 +01:00
Rian Quinn 79ce6930a2 remove redundant "/"
This "/" is not needed as CMake adds this automatically
2017-03-23 21:18:07 +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
Martin Hořeňovský 932a405e18 /Wx -> /WX (stupid typo) 2017-03-06 11:29:57 +01:00
Martin Hořeňovský 9a037204fa Enable /Wx (Warnings as error) for SelfTest builds 2017-03-06 11:21:35 +01:00
philsquared 6fea473414 Fixed CMake generation of MSVC warning levels 2017-03-06 08:35:14 +00:00
Phil Nash 68e7fdce20 Added 4265 to specific warnings in VS 2017-03-06 08:21:52 +00:00
Martin Hořeňovský b0260c615d Fixed-up TAP reporter a bit. 2017-02-22 13:28:13 +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 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
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ý 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
Saad K 7dd4f2977a Added INSTALL commands (#788)
Added INSTALL commands - this is especially useful when adding dependencies (such as CATCH) by using the ExternalProject_Add command
2017-01-31 20:22:45 +01:00
Martin Hořeňovský 50c95a0143 Bumped min cmake version to 3.0
Now we can use target_compile_option to privately add warnings to our
build, without polluting outside CXX_FLAGS.
2017-01-31 20:21:03 +01:00
Martin Hořeňovský 7ae96c710b Returned basic warnings to CMake generated builds 2017-01-31 17:37:27 +01:00
Martin Hořeňovský dab1d9d222 Added CheckFileList in CMake over the benchmark sources 2017-01-25 23:02:25 +01:00
Martin Hořeňovský 4ce11d63a6 Merge branch 'dev-performance' 2017-01-25 22:56:36 +01:00
Phil Nash 876af874f3 Added surrogate cpp for catch_test_case_tracker 2017-01-23 15:18:23 +00:00
Martin Hořeňovský 531d26739f Added the new proxy header to CMakeLists.txt 2017-01-16 19:56:57 +01:00
Martin Hořeňovský e6ef60a2c4 CMake will now warn if a file is in folder, but not in variable 2017-01-15 22:07:36 +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 d5360e8e29 Sorted file lists in CMakeLists.txt for easier maintainence 2017-01-12 11:54:53 +00:00
Phil Nash 0bcae64d3d Set project name in CMakeLists.txt to CatchSelfTest 2017-01-09 17:38:42 +00:00
Phil Nash 8abe17a393 CMake project groups test files separately from surrogate impl files for nicer rendering as XCode/ VS projects 2017-01-09 17:38:42 +00:00
Phil Nash e1fbbe1590 Added headers to CMake project (for CLion) 2017-01-06 16:59:18 +00:00
Phil Nash c8fefc4670 Fixed Travis and CMake after moving CMakeLists.txt 2017-01-06 16:19:20 +00: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