Martin Hořeňovský
f00257e374
Call listeners before calling reporters
...
Catch2's documentation promises that listeners are called _before_
reporters, but because of the previous implementation, they were
called _after_ reporters. This commit fixes that.
Closes #1234
2018-04-07 12:25:03 +02:00
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