Martin Hořeňovský
d2d8455b57
v2.2.2
2018-04-06 12:11:22 +02:00
Martin Hořeňovský
1ca8f43b01
Add PredicateMatcher that takes an arbitrary predicate functions
...
Also adds `Predicate` helper function to create `PredicateMatcher`.
Because of limitations in type inference it needs to be explicitly
typed, like so
`Predicate<std::string>([](std::string const& str) { ... })`.
It also takes an optional second argument for description of the
predicate.
It is possible to infer the argument with sufficient TMP, see
https://stackoverflow.com/questions/43560492/how-to-extract-lambdas-return-type-and-variadic-parameters-pack-back-from-gener/43561563#43561563
but I don't think that the magic is worth introducing ATM.
Closes #1236
2018-04-04 11:14:19 +02:00
Martin Hořeňovský
0a34cc201e
v2.2.1
2018-03-11 12:04:28 +01:00
Martin Hořeňovský
d14b7563c2
v2.2.0
2018-03-07 11:06:15 +01:00
Bastian Dörig
d38f782995
Ensure Catch2ConfigVersion.cmake is installed properly
...
The old version would lead to error when Catch was installed
as a subproject. The file would be written to the subproject's
build directory and then would not be installed properly.
2018-03-07 09:42:58 +01:00
dvirtz
ca8470fbad
https://github.com/catchorg/Catch2/issues/1175 - don't list hidden tests by default
2018-02-09 19:55:40 +01:00
dvirtz
355b3f9952
Add option to warn when no tests ran
...
Closes #1158
2018-02-09 18:49:36 +01:00
Martin Hořeňovský
7cbd0b587a
v2.1.2
2018-02-09 17:10:27 +01:00
Martin Hořeňovský
b5ef68b044
Force MSVC to use utf-8
2018-02-08 15:44:33 +01:00
Daniel J. Rollins
39bfc6e82b
Export Catch as a CMake package and 'linkable' target
...
Create a namespaced Catch2::Catch target that is 'linkable' through
`target_link_libraries()` and export it so it is findable through
`find_package()`.
`find_package()` will find versions with the same major number and with
minor number >= requested.
This makes catch a lot easier to use in CMake-based projects. Whether it
is found using `find_package` or included in the client project as a
subdirectory, the client can include the catch headers per-target with
`target_include_directories(target PRIVATE Catch2::Catch).
Example usage:
cmake_minimum_required(VERSION 3.1)
# include Catch2 as subdirectory or installed package
# add_subdirectory(Catch2)
find_package(Catch2 VERSION 2.1.0 REQUIRED)
add_executable(tests tests/catch_main.cpp)
target_link_libraries(tests PRIVATE Catch2::Catch)
2018-02-08 12:18:42 +01:00
Martin Hořeňovský
ba6d33fb8c
Enable -Wpedantic, fix unconditional use of C++14 extension
2018-02-05 10:04:59 +01:00
Josh Lospinoso
5201e92564
Redirect std::uncaught_exception to Catch::uncaught_exception
...
This means that only one place needs to work with warnings from
the deprecation of `std::uncaught_exception()` in C++17.
Closes #1162 .
2018-02-02 15:36:15 +01:00
Martin Hořeňovský
62dae592c3
v2.1.1
2018-01-26 16:06:07 +01:00
David Seifert
b0f4f16ee0
Namespace Catch CMake options
2018-01-18 23:20:26 +01:00
David Seifert
1e3ddbb496
Specify VERSION in modern CMake
2018-01-18 23:20:26 +01:00
David Seifert
0d687a15d3
Change CMake project name to 'Catch2'
2018-01-18 13:13:39 +01:00
David Seifert
bdf431c400
Install documentation
2018-01-18 13:13:39 +01:00
David Seifert
a0359980f0
Use CTest to control test suite via BUILD_TESTING
2018-01-18 13:13:39 +01:00
David Seifert
8d4074aad9
Use GNUInstallDirs
module
...
* `GNUInstallDirs` is a standardised way to
change paths, which makes systems integration
easier and allows for a more consistent user
experience.
2018-01-18 13:13:39 +01:00
Martin Hořeňovský
07c84adfba
Allow disabling -Werror in CMake
...
Related to #1152
2018-01-14 18:14:11 +01:00
Martin Hořeňovský
cd76f5730c
v2.1.0
2018-01-10 13:53:04 +01:00
philsquared
c3a1143d23
Cleanly override warning level for SelfTest in MSVC
...
Eliminates warning about warning level override (by removing the default /W3)
2018-01-02 10:18:35 +00:00
Martin Hořeňovský
f580591bf8
Test different way of excluding system headers
2017-12-25 19:38:51 +01:00
Martin Hořeňovský
51e281a684
Simplify code coverage CMake toggle
2017-12-03 14:53:23 +01:00
Martin Hořeňovský
45a465713e
Add codecov.io coverage collection from AppVeyor
...
Also had to add new project to redirect CTest output, add
separate batch scripts for AppVeyor because it doesn't handle
multi-line batch scripts in yaml properly, and other helper
scripts.
2017-12-03 13:03:52 +01:00
Martin Hořeňovský
67f734c799
Remove system headers when preprocessing coverage report
2017-12-02 14:17:42 +01:00
Martin Hořeňovský
e344984a1b
Add codecov.io coverage tracking
...
* Every Linux build tracks coverage when running Debug mode
* OS X not supported yet (Future WIP)
* Our own unit tests, non-default reporters and Clara are ignored
2017-11-27 20:13:47 +01:00
Martin Hořeňovský
ae1547e202
Add extra tests to ctest
2017-11-26 21:33:09 +01:00
Martin Hořeňovský
87c125ecb8
Enable Werror for dev builds
2017-11-21 18:55:28 +01:00
Martin Hořeňovský
a8a1c379c0
Introduce a way to intentionally expose interface for use in tests
...
Fixes #1076
2017-11-21 11:10:07 +01:00
Martin Hořeňovský
f36817ef83
Check single-header using test examples
...
This means that examples build for all matrix entries
2017-11-19 22:03:24 +01:00
Martin Moene
85de0727d4
Add examples subdirectory to CMake build; included if BUILD_EXAMPLES is true
2017-11-15 15:37:39 +01:00
Martin Hořeňovský
98d4c49d1c
Provide ConsoleReporter declaration with EXTERNAL_INTERFACES
...
Related to #991
2017-11-14 20:42:58 +01:00
Martin Hořeňovský
a096e4b3f2
Provide XmlReporter declaration with EXTERNAL_INTERFACES
...
Related to #991
2017-11-14 17:56:27 +01:00
Martin Hořeňovský
4b3730de8a
Provide JunitReporter declaration with EXTERNAL_INTERFACES
...
Related to #991
2017-11-14 17:15:13 +01:00
Martin Hořeňovský
6acdacfde0
Provide CompactReporter declaration with EXTERNAL_INTERFACES
...
Related to #991
2017-11-14 16:13:35 +01:00
Phil Nash
74d3dfd4cc
All tests files have .tests.cpp suffix. Also moved tests out of TestMain.cpp and moved up a level
2017-11-13 16:03:27 +00:00
Phil Nash
e34754e433
Split SelfTest test files into Usage and Introspective varieties
...
Usage: just exercises Catch. The tests are over arbitrary date/ types
Introspective: Tests parts of Catch itself.
2017-11-13 15:38:52 +00:00
Martin Hořeňovský
0b1f1b1003
Add ULP and margin matcher
...
Closes #1074
2017-11-10 18:33:00 +01:00
Phil Nash
868e125d49
Moved a lot of stream related stuff out of the public headers and replaced more ostream dependencies with iosfwd
2017-11-07 15:55:09 +00:00
Martin Hořeňovský
a20b286999
Improve travis.yml
...
- Added new compilers and OS X images
- Option to run SelfTest under Valgrind
- Merge "Debug" and "Release" configurations into one run
-- This saves apt setup and cmake download step per compiler, 60-90s
- Fix C++14 compilation under Clang 3.8 and up
2017-11-07 11:24:18 +01:00
Martin Hořeňovský
7a562d39b2
Cleanup CMakelists.txt
2017-11-05 14:15:03 +01:00
Martin Moene
fa9c4207f1
Replace include_directories() with target_include_directories()
...
to prevent inheritance of include directories that possibly lead to a clash.
A clash occurs when a folder is included, e.g. examples, that wants to use the single-include directory instead of the normal include directory as used by the SelfTest in the next higher level.
2017-11-04 22:08:56 +01:00
Phil Nash
b119ebdde1
v2.0.1 release
2017-11-03 12:01:52 +00:00
Martin Hořeňovský
ae21020640
dev build 6
2017-10-31 15:17:21 +01:00
Martin Hořeňovský
601b2888ec
Remove superfluous define from cmake project
2017-10-30 12:27:14 +01:00
Martin Hořeňovský
3049445d78
Remove benchmark binary from main cmake list
...
We can give it a separate CMakeLists.txt later, but there is no
point in building it every time.
2017-10-30 12:25:57 +01:00
Martin Hořeňovský
c672512979
Fix C4601 and enable C4602 warning for internal builds
...
Related to #1072
2017-10-30 12:14:20 +01:00
Martin Hořeňovský
c7d9f02d5b
Add pkg-config support
...
Closes #1032
2017-10-12 21:56:22 +02:00
Martin Hořeňovský
79b405fd3f
Add stringification for std::chrono::{duration,time_point}
...
Also hides std::chrono, std::pair and std::chrono::* behind
new configuration macros, CATCH_CONFIG_ENABLE_*_STRINGMAKER
to avoid dragging in <utility>, <tuple> and <chrono> in common
path, unless requested.
2017-10-09 13:03:29 +02:00
Martin Hořeňovský
9aa96712ae
Sweep out some extra warnings
...
Swept:
`-Wpadded` in some places (where it caused extra size, instead of just
saying "hey, we padded struct at the end to align, just as standard says")
`-Wweak-vtables` everywhere (Clang)
`-Wexit-time-destructors` everywhere (Clang)
`-Wmissing-noreturn` everywhere (Clang)
The last three are enabled for Clang compilation going forward.
Also enabled `-Wunreachable-code` for Clang and GCC
2017-09-07 17:25:15 +02:00
Phil Nash
ca7021ae19
Reflected file extension changes in CMakeLists.txt file
2017-09-07 12:58:44 +01:00
Martin Hořeňovský
ab5d176195
Fix/disable failing approval tests
2017-09-02 10:51:19 +02:00
Martin Hořeňovský
b3a923133d
Actually fix AppVeyor ctest
...
Note, this doesn't mean it will start passing, just that it will
run the approval tests properly
Some changes are needed before it passes, as the Windows output
somewhat differs.
2017-09-01 19:12:15 +02:00
Martin Hořeňovský
35bad89684
Fix ctest failure on windows
2017-09-01 17:55:16 +02:00
Martin Hořeňovský
3a5b951256
Make approval tests part of ctest
2017-08-31 12:00:35 +02:00
Martin Hořeňovský
e871742534
Move session to internal, split apart implementation
2017-08-31 10:31:52 +02:00
Martin Hořeňovský
6388fc946f
Remove last usage of NotImplementedException
...
TeamCity reporter now uses CATCH_ERROR instead
2017-08-30 20:03:54 +02:00
Martin Hořeňovský
0673b9be35
Split RNG related things into its own file
...
This further removes 2 function declarations from the common path
2017-08-30 15:32:44 +02:00
Martin Hořeňovský
5932576f53
Split writeToDebugConsole out of main path
2017-08-29 13:51:55 +02:00
Martin Hořeňovský
24af32f378
Add define that pulls in reporter and listeners interfaces
...
This allows users to define reporters and listeners in files different
from the main file.
Related to #991 , #986
2017-08-17 20:23:30 +02:00
Phil Nash
94d347b059
Removed StringData
2017-08-14 09:14:49 +01:00
Phil Nash
3772f69f0f
Removed String and StringBuilder
2017-08-14 09:04:14 +01:00
Phil Nash
97c06ca6fb
Merge branch 'reevaluate' into dev-modernize
2017-08-10 16:18:05 +01:00
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