diff --git a/packages/Catch2/.gitrepo b/packages/Catch2/.gitrepo index 5c9fe5b98047e2bd6495c7a894c42e09244a586b..6874601bf63d1e7b688ea46ce389ee5c4464750c 100644 --- a/packages/Catch2/.gitrepo +++ b/packages/Catch2/.gitrepo @@ -6,6 +6,7 @@ [subrepo] remote = git@github.com:catchorg/Catch2.git branch = master - commit = 9e1bdca4667295fcb16265eae00efa8423f07007 - parent = cd9b656f2a2e7fe914557e186f30b2123bcb98b4 - cmdver = 0.3.1 + commit = 489a41012e396868954a3e9ee39de26fa432ab44 + parent = f63d70305b7e15f11e33e2ac1b291e870f830bbc + cmdver = 0.4.0 + method = merge diff --git a/packages/Catch2/CMakeLists.txt b/packages/Catch2/CMakeLists.txt index 09793f7b3c2a304868fdb0cc4e8fcd48ef961b61..8cc1ca31d4efc1109c2549066f298ac037569fbe 100644 --- a/packages/Catch2/CMakeLists.txt +++ b/packages/Catch2/CMakeLists.txt @@ -6,7 +6,7 @@ if(NOT DEFINED PROJECT_NAME) set(NOT_SUBPROJECT ON) endif() -project(Catch2 LANGUAGES CXX VERSION 2.4.1) +project(Catch2 LANGUAGES CXX VERSION 2.4.2) # Provide path for scripts list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake") diff --git a/packages/Catch2/README.md b/packages/Catch2/README.md index 73162bbf498736c05f891e28df04248fa6c25d30..e84306c5cce97e90f1236e5a2347a3e37f617955 100644 --- a/packages/Catch2/README.md +++ b/packages/Catch2/README.md @@ -5,11 +5,11 @@ [](https://travis-ci.org/catchorg/Catch2) [](https://ci.appveyor.com/project/catchorg/catch2) [](https://codecov.io/gh/catchorg/Catch2) -[](https://wandbox.org/permlink/E0msqwbW7U4PVbHn) +[](https://wandbox.org/permlink/rbkudthN4hBNJznk) [](https://discord.gg/4CWS9zD) -<a href="https://github.com/catchorg/Catch2/releases/download/v2.4.1/catch.hpp">The latest version of the single header can be downloaded directly using this link</a> +<a href="https://github.com/catchorg/Catch2/releases/download/v2.4.2/catch.hpp">The latest version of the single header can be downloaded directly using this link</a> ## Catch2 is released! diff --git a/packages/Catch2/conanfile.py b/packages/Catch2/conanfile.py index 19b2c65e68bfb5f2d8378cb7108c2c494d599510..b99f314d7e19c7eb13a9eb6fb9387adb45e02092 100644 --- a/packages/Catch2/conanfile.py +++ b/packages/Catch2/conanfile.py @@ -4,7 +4,7 @@ from conans import ConanFile, CMake class CatchConan(ConanFile): name = "Catch" - version = "2.4.1" + version = "2.4.2" description = "A modern, C++-native, header-only, framework for unit-tests, TDD and BDD" author = "philsquared" generators = "cmake" diff --git a/packages/Catch2/contrib/CatchAddTests.cmake b/packages/Catch2/contrib/CatchAddTests.cmake index 07856130663918ddf6c6bfa9154c87f20046c6a1..2220ce3ac6b987b1e8b1ae82466a3f715916687c 100644 --- a/packages/Catch2/contrib/CatchAddTests.cmake +++ b/packages/Catch2/contrib/CatchAddTests.cmake @@ -51,12 +51,14 @@ string(REPLACE "\n" ";" output "${output}") # Parse output foreach(line ${output}) set(test ${line}) + # use escape commas to handle properly test cases with commans inside the name + string(REPLACE "," "\\," test_name ${test}) # ...and add to script add_command(add_test "${prefix}${test}${suffix}" ${TEST_EXECUTOR} "${TEST_EXECUTABLE}" - "${test}" + "${test_name}" ${extra_args} ) add_command(set_tests_properties diff --git a/packages/Catch2/contrib/ParseAndAddCatchTests.cmake b/packages/Catch2/contrib/ParseAndAddCatchTests.cmake index 85c06a0dd93c5e80dea87564948d405b40ab0e33..e7c64f01261d7a32cd00a7245cca1bbb0a34a993 100644 --- a/packages/Catch2/contrib/ParseAndAddCatchTests.cmake +++ b/packages/Catch2/contrib/ParseAndAddCatchTests.cmake @@ -39,6 +39,11 @@ # PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS (Default OFF) # # -- causes CMake to rerun when file with tests changes so that new tests will be discovered # # # +# One can also set (locally) the optional variable OptionalCatchTestLauncher to precise the way # +# a test should be run. For instance to use test MPI, one can write # +# set(OptionalCatchTestLauncher ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NUMPROC}) # +# just before calling this ParseAndAddCatchTests function # +# # #==================================================================================================# cmake_minimum_required(VERSION 2.8.8) @@ -168,7 +173,7 @@ function(ParseFile SourceFile TestTarget) endif() # Add the test and set its properties - add_test(NAME "\"${CTestName}\"" COMMAND ${TestTarget} ${Name} ${AdditionalCatchParameters}) + add_test(NAME "\"${CTestName}\"" COMMAND ${OptionalCatchTestLauncher} ${TestTarget} ${Name} ${AdditionalCatchParameters}) set_tests_properties("\"${CTestName}\"" PROPERTIES FAIL_REGULAR_EXPRESSION "No tests ran" LABELS "${Labels}") endif() diff --git a/packages/Catch2/docs/Readme.md b/packages/Catch2/docs/Readme.md index 9087551816921b362ac463e5afb1418851ba489a..8a45c4a4cc9e623fdd5c112dbd5d232ab1a5057e 100644 --- a/packages/Catch2/docs/Readme.md +++ b/packages/Catch2/docs/Readme.md @@ -13,6 +13,7 @@ Writing tests: * [Reporters](reporters.md#top) * [Event Listeners](event-listeners.md#top) * [Data Generators](generators.md#top) +* [Other macros](other-macros.md#top) Fine tuning: * [Supplying your own main()](own-main.md#top) diff --git a/packages/Catch2/docs/cmake-integration.md b/packages/Catch2/docs/cmake-integration.md index a075c040f2ba7561b97cec8808f93c6e48acc11a..246e7f0ec22c5a451b755bc0618fe4f66ca50fff 100644 --- a/packages/Catch2/docs/cmake-integration.md +++ b/packages/Catch2/docs/cmake-integration.md @@ -172,6 +172,16 @@ step will be re-ran when the test files change, letting new tests be automatically discovered. Defaults to `OFF`. +Optionally, one can specify a launching command to run tests by setting the +variable `OptionalCatchTestLauncher` before calling `ParseAndAddCatchTests`. For +instance to run some tests using `MPI` and other sequentially, one can write +```cmake +set(OptionalCatchTestLauncher ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NUMPROC}) +ParseAndAddCatchTests(mpi_foo) +unset(OptionalCatchTestLauncher) +ParseAndAddCatchTests(bar) +``` + ## CMake project options Catch2's CMake project also provides some options for other projects diff --git a/packages/Catch2/docs/other-macros.md b/packages/Catch2/docs/other-macros.md new file mode 100644 index 0000000000000000000000000000000000000000..6f5fac7b06dbbc6c02145be2c93cdc09ca15ddcf --- /dev/null +++ b/packages/Catch2/docs/other-macros.md @@ -0,0 +1,150 @@ +<a id="top"></a> +# Other macros + +This page serves as a reference for macros that are not documented +elsewhere. For now, these macros are separated into 2 rough categories, +"assertion related macros" and "test case related macros". + +## Assertion related macros + +* `CHECKED_IF` and `CHECKED_ELSE` + +`CHECKED_IF( expr )` is an `if` replacement, that also applies Catch2's +stringification machinery to the _expr_ and records the result. As with +`if`, the block after a `CHECKED_IF` is entered only if the expression +evaluates to `true`. `CHECKED_ELSE( expr )` work similarly, but the block +is entered only if the _expr_ evaluated to `false`. + +Example: +```cpp +int a = ...; +int b = ...; +CHECKED_IF( a == b ) { + // This block is entered when a == b +} CHECKED_ELSE ( a == b ) { + // This block is entered when a != b +} +``` + +* `CHECK_NOFAIL` + +`CHECK_NOFAIL( expr )` is a variant of `CHECK` that does not fail the test +case if _expr_ evaluates to `false`. This can be useful for checking some +assumption, that might be violated without the test neccessarily failing. + +Example output: +``` +main.cpp:6: +FAILED - but was ok: + CHECK_NOFAIL( 1 == 2 ) + +main.cpp:7: +PASSED: + CHECK( 2 == 2 ) +``` + +* `SUCCEED` + +`SUCCEED( msg )` is mostly equivalent with `INFO( msg ); REQUIRE( true );`. +In other words, `SUCCEED` is for cases where just reaching a certain line +means that the test has been a success. + +Example usage: +```cpp +TEST_CASE( "SUCCEED showcase" ) { + int I = 1; + SUCCEED( "I is " << I ); +} +``` + +* `STATIC_REQUIRE` + +`STATIC_REQUIRE( expr )` is a macro that can be used the same way as a +`static_assert`, but also registers the success with Catch2, so it is +reported as a success at runtime. The whole check can also be deferred +to the runtime, by defining `CATCH_CONFIG_RUNTIME_STATIC_REQUIRE` before +including the Catch2 header. + +Example: +```cpp +TEST_CASE("STATIC_REQUIRE showcase", "[traits]") { + STATIC_REQUIRE( std::is_void<void>::value ); + STATIC_REQUIRE_FALSE( std::is_void<int>::value ); +} +``` + +## Test case related macros + +* `METHOD_AS_TEST_CASE` + +`METHOD_AS_TEST_CASE( member-function-pointer, description )` lets you +register a member function of a class as a Catch2 test case. The class +will be separately instantiated for each method registered in this way. + +```cpp +class TestClass { + std::string s; + +public: + TestClass() + :s( "hello" ) + {} + + void testCase() { + REQUIRE( s == "hello" ); + } +}; + + +METHOD_AS_TEST_CASE( TestClass::testCase, "Use class's method as a test case", "[class]" ) +``` + +* `REGISTER_TEST_CASE` + +`REGISTER_TEST_CASE( function, description )` let's you register +a `function` as a test case. The function has to have `void()` signature, +the description can contain both name and tags. + +Example: +```cpp +REGISTER_TEST_CASE( someFunction, "ManuallyRegistered", "[tags]" ); +``` + +_Note that the registration still has to happen before Catch2's session +is initiated. This means that it either needs to be done in a global +constructor, or before Catch2's session is created in user's own main._ + + +* `ANON_TEST_CASE` + +`ANON_TEST_CASE` is a `TEST_CASE` replacement that will autogenerate +unique name. The advantage of this is that you do not have to think +of a name for the test case,`the disadvantage is that the name doesn't +neccessarily remain stable across different links, and thus it might be +hard to run directly. + +Example: +```cpp +ANON_TEST_CASE() { + SUCCEED("Hello from anonymous test case"); +} +``` + +* `DYNAMIC_SECTION` + +`DYNAMIC_SECTION` is a `SECTION` where the user can use `operator<<` to +create the final name for that section. This can be useful with e.g. +generators, or when creating a `SECTION` dynamically, within a loop. + +Example: +```cpp +TEST_CASE( "looped SECTION tests" ) { + int a = 1; + + for( int b = 0; b < 10; ++b ) { + DYNAMIC_SECTION( "b is currently: " << b ) { + CHECK( b > a ); + } + } +} +``` diff --git a/packages/Catch2/docs/release-notes.md b/packages/Catch2/docs/release-notes.md index f31f0e8760762908299d78e4bbab0318adf4b686..16f9cc5b21742cc9a38e3fbf4c48580b201ca6b6 100644 --- a/packages/Catch2/docs/release-notes.md +++ b/packages/Catch2/docs/release-notes.md @@ -2,6 +2,7 @@ # Release notes **Contents**<br> +[2.4.2](#242)<br> [2.4.1](#241)<br> [2.4.0](#240)<br> [2.3.0](#230)<br> @@ -17,6 +18,29 @@ [Even Older versions](#even-older-versions)<br> +## 2.4.2 + +### Improvements +* XmlReporter now also outputs the RNG seed that was used in a run (#1404) +* `Catch::Session::applyCommandLine` now also accepts `wchar_t` arguments. + * However, Catch2 still does not support unicode. +* Added `STATIC_REQUIRE` macro (#1356, #1362) +* Catch2's singleton's are now cleaned up even if tests are run (#1411) + * This is mostly useful as a FP prevention for users who define their own main. +* Specifying an invalid reporter via `-r` is now reported sooner (#1351, #1422) + + +### Fixes +* Stringification no longer assumes that `char` is signed (#1399, #1407) + * This caused a `Wtautological-compare` warning. +* SFINAE for `operator<<` no longer sees different overload set than the actual insertion (#1403) + + +### Contrib +* `catch_discover_tests` correctly adds tests with comma in name (#1327, #1409) +* Added a new customization point in how the tests are launched to `catch_discover_tests` + + ## 2.4.1 ### Improvements diff --git a/packages/Catch2/docs/why-catch.md b/packages/Catch2/docs/why-catch.md index 45f58a6ab7cb1932b8f2a6fdd8605d0a94659641..86cc55bc56b52d8982a9e31ef788cae2102f8848 100644 --- a/packages/Catch2/docs/why-catch.md +++ b/packages/Catch2/docs/why-catch.md @@ -6,7 +6,7 @@ including (but not limited to), [Google Test](http://code.google.com/p/googletest/), [Boost.Test](http://www.boost.org/doc/libs/1_49_0/libs/test/doc/html/index.html), [CppUnit](http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page), -[Cute](http://r2.ifs.hsr.ch/cute), +[Cute](http://www.cute-test.com), [many, many more](http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B). So what does Catch bring to the party that differentiates it from these? Apart from a Catchy name, of course. diff --git a/packages/Catch2/include/catch.hpp b/packages/Catch2/include/catch.hpp index f8b380c4e4053062fa1b94ab6254699b25aed918..84b9f46609bd8ba8243aa928906a015e37e23ea1 100644 --- a/packages/Catch2/include/catch.hpp +++ b/packages/Catch2/include/catch.hpp @@ -11,7 +11,7 @@ #define CATCH_VERSION_MAJOR 2 #define CATCH_VERSION_MINOR 4 -#define CATCH_VERSION_PATCH 1 +#define CATCH_VERSION_PATCH 2 #ifdef __clang__ # pragma clang system_header @@ -145,6 +145,15 @@ #define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE() +#if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE) +#define CATCH_STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__ , #__VA_ARGS__ ); CATCH_SUCCEED( #__VA_ARGS__ ) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); CATCH_SUCCEED( #__VA_ARGS__ ) +#else +#define CATCH_STATIC_REQUIRE( ... ) CATCH_REQUIRE( __VA_ARGS__ ) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) CATCH_REQUIRE_FALSE( __VA_ARGS__ ) +#endif + + // "BDD-style" convenience wrappers #define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ ) #define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) @@ -205,6 +214,14 @@ #define SUCCEED( ... ) INTERNAL_CATCH_MSG( "SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) #define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE() +#if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE) +#define STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__, #__VA_ARGS__ ); SUCCEED( #__VA_ARGS__ ) +#define STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); SUCCEED( "!(" #__VA_ARGS__ ")" ) +#else +#define STATIC_REQUIRE( ... ) REQUIRE( __VA_ARGS__ ) +#define STATIC_REQUIRE_FALSE( ... ) REQUIRE_FALSE( __VA_ARGS__ ) +#endif + #endif #define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) @@ -285,6 +302,9 @@ using Catch::Detail::Approx; #define CATCH_THEN( desc ) #define CATCH_AND_THEN( desc ) +#define CATCH_STATIC_REQUIRE( ... ) (void)(0) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) (void)(0) + // If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required #else @@ -335,6 +355,10 @@ using Catch::Detail::Approx; #define SUCCEED( ... ) (void)(0) #define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) + +#define STATIC_REQUIRE( ... ) (void)(0) +#define STATIC_REQUIRE_FALSE( ... ) (void)(0) + #endif #define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature ) diff --git a/packages/Catch2/include/external/clara.hpp b/packages/Catch2/include/external/clara.hpp index 3a7f88363711015a95f47f62b721b9deb185010f..056e0a3152600199ba9397bb03bdaeb5a617f8ad 100644 --- a/packages/Catch2/include/external/clara.hpp +++ b/packages/Catch2/include/external/clara.hpp @@ -5,7 +5,7 @@ // // See https://github.com/philsquared/Clara for more details -// Clara v1.1.4 +// Clara v1.1.5 #ifndef CATCH_CLARA_HPP_INCLUDED #define CATCH_CLARA_HPP_INCLUDED @@ -34,8 +34,8 @@ // // A single-header library for wrapping and laying out basic text, by Phil Nash // -// This work is licensed under the BSD 2-Clause license. -// See the accompanying LICENSE file, or the one at https://opensource.org/licenses/BSD-2-Clause +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // // This project is hosted at https://github.com/philsquared/textflowcpp @@ -52,317 +52,326 @@ #endif -namespace Catch { namespace clara { namespace TextFlow { - - inline auto isWhitespace( char c ) -> bool { - static std::string chars = " \t\n\r"; - return chars.find( c ) != std::string::npos; - } - inline auto isBreakableBefore( char c ) -> bool { - static std::string chars = "[({<|"; - return chars.find( c ) != std::string::npos; - } - inline auto isBreakableAfter( char c ) -> bool { - static std::string chars = "])}>.,:;*+-=&/\\"; - return chars.find( c ) != std::string::npos; - } - - class Columns; - - class Column { - std::vector<std::string> m_strings; - size_t m_width = CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH; - size_t m_indent = 0; - size_t m_initialIndent = std::string::npos; - - public: - class iterator { - friend Column; - - Column const& m_column; - size_t m_stringIndex = 0; - size_t m_pos = 0; - - size_t m_len = 0; - size_t m_end = 0; - bool m_suffix = false; - - iterator( Column const& column, size_t stringIndex ) - : m_column( column ), - m_stringIndex( stringIndex ) - {} - - auto line() const -> std::string const& { return m_column.m_strings[m_stringIndex]; } - - auto isBoundary( size_t at ) const -> bool { - assert( at > 0 ); - assert( at <= line().size() ); - - return at == line().size() || - ( isWhitespace( line()[at] ) && !isWhitespace( line()[at-1] ) ) || - isBreakableBefore( line()[at] ) || - isBreakableAfter( line()[at-1] ); - } - - void calcLength() { - assert( m_stringIndex < m_column.m_strings.size() ); - - m_suffix = false; - auto width = m_column.m_width-indent(); - m_end = m_pos; - while( m_end < line().size() && line()[m_end] != '\n' ) - ++m_end; - - if( m_end < m_pos + width ) { - m_len = m_end - m_pos; - } - else { - size_t len = width; - while (len > 0 && !isBoundary(m_pos + len)) - --len; - while (len > 0 && isWhitespace( line()[m_pos + len - 1] )) - --len; - - if (len > 0) { - m_len = len; - } else { - m_suffix = true; - m_len = width - 1; - } - } - } - - auto indent() const -> size_t { - auto initial = m_pos == 0 && m_stringIndex == 0 ? m_column.m_initialIndent : std::string::npos; - return initial == std::string::npos ? m_column.m_indent : initial; - } - - auto addIndentAndSuffix(std::string const &plain) const -> std::string { - return std::string( indent(), ' ' ) + (m_suffix ? plain + "-" : plain); - } - - public: - explicit iterator( Column const& column ) : m_column( column ) { - assert( m_column.m_width > m_column.m_indent ); - assert( m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent ); - calcLength(); - if( m_len == 0 ) - m_stringIndex++; // Empty string - } - - auto operator *() const -> std::string { - assert( m_stringIndex < m_column.m_strings.size() ); - assert( m_pos <= m_end ); - if( m_pos + m_column.m_width < m_end ) - return addIndentAndSuffix(line().substr(m_pos, m_len)); - else - return addIndentAndSuffix(line().substr(m_pos, m_end - m_pos)); - } - - auto operator ++() -> iterator& { - m_pos += m_len; - if( m_pos < line().size() && line()[m_pos] == '\n' ) - m_pos += 1; - else - while( m_pos < line().size() && isWhitespace( line()[m_pos] ) ) - ++m_pos; - - if( m_pos == line().size() ) { - m_pos = 0; - ++m_stringIndex; - } - if( m_stringIndex < m_column.m_strings.size() ) - calcLength(); - return *this; - } - auto operator ++(int) -> iterator { - iterator prev( *this ); - operator++(); - return prev; - } - - auto operator ==( iterator const& other ) const -> bool { - return - m_pos == other.m_pos && - m_stringIndex == other.m_stringIndex && - &m_column == &other.m_column; - } - auto operator !=( iterator const& other ) const -> bool { - return !operator==( other ); - } - }; - using const_iterator = iterator; - - explicit Column( std::string const& text ) { m_strings.push_back( text ); } - - auto width( size_t newWidth ) -> Column& { - assert( newWidth > 0 ); - m_width = newWidth; - return *this; - } - auto indent( size_t newIndent ) -> Column& { - m_indent = newIndent; - return *this; - } - auto initialIndent( size_t newIndent ) -> Column& { - m_initialIndent = newIndent; - return *this; - } - - auto width() const -> size_t { return m_width; } - auto begin() const -> iterator { return iterator( *this ); } - auto end() const -> iterator { return { *this, m_strings.size() }; } - - inline friend std::ostream& operator << ( std::ostream& os, Column const& col ) { - bool first = true; - for( auto line : col ) { - if( first ) - first = false; - else - os << "\n"; - os << line; - } - return os; - } - - auto operator + ( Column const& other ) -> Columns; - - auto toString() const -> std::string { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - }; - - class Spacer : public Column { - - public: - explicit Spacer( size_t spaceWidth ) : Column( "" ) { - width( spaceWidth ); - } - }; - - class Columns { - std::vector<Column> m_columns; - - public: - - class iterator { - friend Columns; - struct EndTag {}; - - std::vector<Column> const& m_columns; - std::vector<Column::iterator> m_iterators; - size_t m_activeIterators; - - iterator( Columns const& columns, EndTag ) - : m_columns( columns.m_columns ), - m_activeIterators( 0 ) - { - m_iterators.reserve( m_columns.size() ); - - for( auto const& col : m_columns ) - m_iterators.push_back( col.end() ); - } - - public: - explicit iterator( Columns const& columns ) - : m_columns( columns.m_columns ), - m_activeIterators( m_columns.size() ) - { - m_iterators.reserve( m_columns.size() ); - - for( auto const& col : m_columns ) - m_iterators.push_back( col.begin() ); - } - - auto operator ==( iterator const& other ) const -> bool { - return m_iterators == other.m_iterators; - } - auto operator !=( iterator const& other ) const -> bool { - return m_iterators != other.m_iterators; - } - auto operator *() const -> std::string { - std::string row, padding; - - for( size_t i = 0; i < m_columns.size(); ++i ) { - auto width = m_columns[i].width(); - if( m_iterators[i] != m_columns[i].end() ) { - std::string col = *m_iterators[i]; - row += padding + col; - if( col.size() < width ) - padding = std::string( width - col.size(), ' ' ); - else - padding = ""; - } - else { - padding += std::string( width, ' ' ); - } - } - return row; - } - auto operator ++() -> iterator& { - for( size_t i = 0; i < m_columns.size(); ++i ) { - if (m_iterators[i] != m_columns[i].end()) - ++m_iterators[i]; - } - return *this; - } - auto operator ++(int) -> iterator { - iterator prev( *this ); - operator++(); - return prev; - } - }; - using const_iterator = iterator; - - auto begin() const -> iterator { return iterator( *this ); } - auto end() const -> iterator { return { *this, iterator::EndTag() }; } - - auto operator += ( Column const& col ) -> Columns& { - m_columns.push_back( col ); - return *this; - } - auto operator + ( Column const& col ) -> Columns { - Columns combined = *this; - combined += col; - return combined; - } - - inline friend std::ostream& operator << ( std::ostream& os, Columns const& cols ) { - - bool first = true; - for( auto line : cols ) { - if( first ) - first = false; - else - os << "\n"; - os << line; - } - return os; - } - - auto toString() const -> std::string { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - }; - - inline auto Column::operator + ( Column const& other ) -> Columns { - Columns cols; - cols += *this; - cols += other; - return cols; - } -}}} // namespace Catch::clara::TextFlow - +namespace Catch { +namespace clara { +namespace TextFlow { + +inline auto isWhitespace(char c) -> bool { + static std::string chars = " \t\n\r"; + return chars.find(c) != std::string::npos; +} +inline auto isBreakableBefore(char c) -> bool { + static std::string chars = "[({<|"; + return chars.find(c) != std::string::npos; +} +inline auto isBreakableAfter(char c) -> bool { + static std::string chars = "])}>.,:;*+-=&/\\"; + return chars.find(c) != std::string::npos; +} + +class Columns; + +class Column { + std::vector<std::string> m_strings; + size_t m_width = CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH; + size_t m_indent = 0; + size_t m_initialIndent = std::string::npos; + +public: + class iterator { + friend Column; + + Column const& m_column; + size_t m_stringIndex = 0; + size_t m_pos = 0; + + size_t m_len = 0; + size_t m_end = 0; + bool m_suffix = false; + + iterator(Column const& column, size_t stringIndex) + : m_column(column), + m_stringIndex(stringIndex) {} + + auto line() const -> std::string const& { return m_column.m_strings[m_stringIndex]; } + + auto isBoundary(size_t at) const -> bool { + assert(at > 0); + assert(at <= line().size()); + + return at == line().size() || + (isWhitespace(line()[at]) && !isWhitespace(line()[at - 1])) || + isBreakableBefore(line()[at]) || + isBreakableAfter(line()[at - 1]); + } + + void calcLength() { + assert(m_stringIndex < m_column.m_strings.size()); + + m_suffix = false; + auto width = m_column.m_width - indent(); + m_end = m_pos; + while (m_end < line().size() && line()[m_end] != '\n') + ++m_end; + + if (m_end < m_pos + width) { + m_len = m_end - m_pos; + } else { + size_t len = width; + while (len > 0 && !isBoundary(m_pos + len)) + --len; + while (len > 0 && isWhitespace(line()[m_pos + len - 1])) + --len; + + if (len > 0) { + m_len = len; + } else { + m_suffix = true; + m_len = width - 1; + } + } + } + + auto indent() const -> size_t { + auto initial = m_pos == 0 && m_stringIndex == 0 ? m_column.m_initialIndent : std::string::npos; + return initial == std::string::npos ? m_column.m_indent : initial; + } + + auto addIndentAndSuffix(std::string const &plain) const -> std::string { + return std::string(indent(), ' ') + (m_suffix ? plain + "-" : plain); + } + + public: + using difference_type = std::ptrdiff_t; + using value_type = std::string; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::forward_iterator_tag; + + explicit iterator(Column const& column) : m_column(column) { + assert(m_column.m_width > m_column.m_indent); + assert(m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent); + calcLength(); + if (m_len == 0) + m_stringIndex++; // Empty string + } + + auto operator *() const -> std::string { + assert(m_stringIndex < m_column.m_strings.size()); + assert(m_pos <= m_end); + return addIndentAndSuffix(line().substr(m_pos, m_len)); + } + + auto operator ++() -> iterator& { + m_pos += m_len; + if (m_pos < line().size() && line()[m_pos] == '\n') + m_pos += 1; + else + while (m_pos < line().size() && isWhitespace(line()[m_pos])) + ++m_pos; + + if (m_pos == line().size()) { + m_pos = 0; + ++m_stringIndex; + } + if (m_stringIndex < m_column.m_strings.size()) + calcLength(); + return *this; + } + auto operator ++(int) -> iterator { + iterator prev(*this); + operator++(); + return prev; + } + + auto operator ==(iterator const& other) const -> bool { + return + m_pos == other.m_pos && + m_stringIndex == other.m_stringIndex && + &m_column == &other.m_column; + } + auto operator !=(iterator const& other) const -> bool { + return !operator==(other); + } + }; + using const_iterator = iterator; + + explicit Column(std::string const& text) { m_strings.push_back(text); } + + auto width(size_t newWidth) -> Column& { + assert(newWidth > 0); + m_width = newWidth; + return *this; + } + auto indent(size_t newIndent) -> Column& { + m_indent = newIndent; + return *this; + } + auto initialIndent(size_t newIndent) -> Column& { + m_initialIndent = newIndent; + return *this; + } + + auto width() const -> size_t { return m_width; } + auto begin() const -> iterator { return iterator(*this); } + auto end() const -> iterator { return { *this, m_strings.size() }; } + + inline friend std::ostream& operator << (std::ostream& os, Column const& col) { + bool first = true; + for (auto line : col) { + if (first) + first = false; + else + os << "\n"; + os << line; + } + return os; + } + + auto operator + (Column const& other)->Columns; + + auto toString() const -> std::string { + std::ostringstream oss; + oss << *this; + return oss.str(); + } +}; + +class Spacer : public Column { + +public: + explicit Spacer(size_t spaceWidth) : Column("") { + width(spaceWidth); + } +}; + +class Columns { + std::vector<Column> m_columns; + +public: + + class iterator { + friend Columns; + struct EndTag {}; + + std::vector<Column> const& m_columns; + std::vector<Column::iterator> m_iterators; + size_t m_activeIterators; + + iterator(Columns const& columns, EndTag) + : m_columns(columns.m_columns), + m_activeIterators(0) { + m_iterators.reserve(m_columns.size()); + + for (auto const& col : m_columns) + m_iterators.push_back(col.end()); + } + + public: + using difference_type = std::ptrdiff_t; + using value_type = std::string; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::forward_iterator_tag; + + explicit iterator(Columns const& columns) + : m_columns(columns.m_columns), + m_activeIterators(m_columns.size()) { + m_iterators.reserve(m_columns.size()); + + for (auto const& col : m_columns) + m_iterators.push_back(col.begin()); + } + + auto operator ==(iterator const& other) const -> bool { + return m_iterators == other.m_iterators; + } + auto operator !=(iterator const& other) const -> bool { + return m_iterators != other.m_iterators; + } + auto operator *() const -> std::string { + std::string row, padding; + + for (size_t i = 0; i < m_columns.size(); ++i) { + auto width = m_columns[i].width(); + if (m_iterators[i] != m_columns[i].end()) { + std::string col = *m_iterators[i]; + row += padding + col; + if (col.size() < width) + padding = std::string(width - col.size(), ' '); + else + padding = ""; + } else { + padding += std::string(width, ' '); + } + } + return row; + } + auto operator ++() -> iterator& { + for (size_t i = 0; i < m_columns.size(); ++i) { + if (m_iterators[i] != m_columns[i].end()) + ++m_iterators[i]; + } + return *this; + } + auto operator ++(int) -> iterator { + iterator prev(*this); + operator++(); + return prev; + } + }; + using const_iterator = iterator; + + auto begin() const -> iterator { return iterator(*this); } + auto end() const -> iterator { return { *this, iterator::EndTag() }; } + + auto operator += (Column const& col) -> Columns& { + m_columns.push_back(col); + return *this; + } + auto operator + (Column const& col) -> Columns { + Columns combined = *this; + combined += col; + return combined; + } + + inline friend std::ostream& operator << (std::ostream& os, Columns const& cols) { + + bool first = true; + for (auto line : cols) { + if (first) + first = false; + else + os << "\n"; + os << line; + } + return os; + } + + auto toString() const -> std::string { + std::ostringstream oss; + oss << *this; + return oss.str(); + } +}; + +inline auto Column::operator + (Column const& other) -> Columns { + Columns cols; + cols += *this; + cols += other; + return cols; +} +} + +} +} #endif // CATCH_CLARA_TEXTFLOW_HPP_INCLUDED // ----------- end of #include from clara_textflow.hpp ----------- // ........... back in clara.hpp +#include <string> #include <memory> #include <set> #include <algorithm> diff --git a/packages/Catch2/include/internal/catch_commandline.cpp b/packages/Catch2/include/internal/catch_commandline.cpp index c57b7ed74dc9ecb3ddb357ac2d84a43f5ab4c182..66759ebbf168c842d48ef8ad356f612640108fd0 100644 --- a/packages/Catch2/include/internal/catch_commandline.cpp +++ b/packages/Catch2/include/internal/catch_commandline.cpp @@ -10,6 +10,9 @@ #include "catch_string_manip.h" +#include "catch_interfaces_registry_hub.h" +#include "catch_interfaces_reporter.h" + #include <fstream> #include <ctime> @@ -105,6 +108,18 @@ namespace Catch { return ParserResult::runtimeError( "Unrecognised verbosity, '" + verbosity + "'" ); return ParserResult::ok( ParseResultType::Matched ); }; + auto const setReporter = [&]( std::string const& reporter ) { + IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); + + auto lcReporter = toLower( reporter ); + auto result = factories.find( lcReporter ); + + if( factories.end() != result ) + config.reporterName = lcReporter; + else + return ParserResult::runtimeError( "Unrecognized reporter, '" + reporter + "'. Check available with --list-reporters" ); + return ParserResult::ok( ParseResultType::Matched ); + }; auto cli = ExeName( config.processName ) @@ -130,7 +145,7 @@ namespace Catch { | Opt( config.outputFilename, "filename" ) ["-o"]["--out"] ( "output filename" ) - | Opt( config.reporterName, "name" ) + | Opt( setReporter, "name" ) ["-r"]["--reporter"] ( "reporter to use (defaults to console)" ) | Opt( config.name, "name" ) diff --git a/packages/Catch2/include/internal/catch_common.h b/packages/Catch2/include/internal/catch_common.h index 4aaf80c590f79e070641944d048f22f071ed40a7..b332e164bb2e9ebd3d7dfe3b799af11974107f72 100644 --- a/packages/Catch2/include/internal/catch_common.h +++ b/packages/Catch2/include/internal/catch_common.h @@ -22,6 +22,10 @@ #include <string> #include <cstdint> +// We need a dummy global operator<< so we can bring it into Catch namespace later +struct Catch_global_namespace_dummy {}; +std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); + namespace Catch { struct CaseSensitive { enum Choice { @@ -63,6 +67,11 @@ namespace Catch { std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); + // Bring in operator<< from global namespace into Catch namespace + // This is necessary because the overload of operator<< above makes + // lookup stop at namespace Catch + using ::operator<<; + // Use this in variadic streaming macros to allow // >> +StreamEndStop // as well as diff --git a/packages/Catch2/include/internal/catch_leak_detector.cpp b/packages/Catch2/include/internal/catch_leak_detector.cpp index dd160d9c44644f04b2119cf608663260441b7cac..7a30e8a140eed12dfdd19aa5346659438e751d49 100644 --- a/packages/Catch2/include/internal/catch_leak_detector.cpp +++ b/packages/Catch2/include/internal/catch_leak_detector.cpp @@ -6,6 +6,7 @@ */ #include "catch_leak_detector.h" + #include "catch_interfaces_registry_hub.h" #ifdef CATCH_CONFIG_WINDOWS_CRTDBG @@ -30,3 +31,7 @@ namespace Catch { Catch::LeakDetector::LeakDetector() {} #endif + +Catch::LeakDetector::~LeakDetector() { + Catch::cleanUp(); +} diff --git a/packages/Catch2/include/internal/catch_leak_detector.h b/packages/Catch2/include/internal/catch_leak_detector.h index bfb0b4298d2278fcaa0252c006fdb9d9b806afb5..633457ac8f0b16ae2f3419185da61f0ac91f5dc7 100644 --- a/packages/Catch2/include/internal/catch_leak_detector.h +++ b/packages/Catch2/include/internal/catch_leak_detector.h @@ -11,6 +11,7 @@ namespace Catch { struct LeakDetector { LeakDetector(); + ~LeakDetector(); }; } diff --git a/packages/Catch2/include/internal/catch_list.cpp b/packages/Catch2/include/internal/catch_list.cpp index 3b0e33f112e88dd7ed6e8105c994dbad64ee9049..6010ec15d2f238aa92d9b92880a914a1464562ed 100644 --- a/packages/Catch2/include/internal/catch_list.cpp +++ b/packages/Catch2/include/internal/catch_list.cpp @@ -124,7 +124,7 @@ namespace Catch { return tagCounts.size(); } - std::size_t listReporters( Config const& /*config*/ ) { + std::size_t listReporters() { Catch::cout() << "Available reporters:\n"; IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); std::size_t maxNameLen = 0; @@ -155,7 +155,7 @@ namespace Catch { if( config.listTags() ) listedCount = listedCount.valueOr(0) + listTags( config ); if( config.listReporters() ) - listedCount = listedCount.valueOr(0) + listReporters( config ); + listedCount = listedCount.valueOr(0) + listReporters(); return listedCount; } diff --git a/packages/Catch2/include/internal/catch_list.h b/packages/Catch2/include/internal/catch_list.h index 4bc96ec5176bac819a29ae54c62f226e717ede04..bd29d97066a623417bd47d8b3dadc0d705ab8115 100644 --- a/packages/Catch2/include/internal/catch_list.h +++ b/packages/Catch2/include/internal/catch_list.h @@ -29,7 +29,7 @@ namespace Catch { std::size_t listTags( Config const& config ); - std::size_t listReporters( Config const& /*config*/ ); + std::size_t listReporters(); Option<std::size_t> list( Config const& config ); diff --git a/packages/Catch2/include/internal/catch_matchers.h b/packages/Catch2/include/internal/catch_matchers.h index 29692fc05e6e19b55c7271193acbccf89b93dc35..aebd4c23948b120b0f9e8b961a149fac188fc4cf 100644 --- a/packages/Catch2/include/internal/catch_matchers.h +++ b/packages/Catch2/include/internal/catch_matchers.h @@ -43,10 +43,6 @@ namespace Matchers { struct MatcherMethod { virtual bool match( ObjectT const& arg ) const = 0; }; - template<typename PtrT> - struct MatcherMethod<PtrT*> { - virtual bool match( PtrT* arg ) const = 0; - }; #ifdef __clang__ # pragma clang diagnostic pop diff --git a/packages/Catch2/include/internal/catch_session.cpp b/packages/Catch2/include/internal/catch_session.cpp index 5d028ed21e84186c9094fbc8039394ee7c5db1fc..0920521c0085667951c778ade00b716f5e624532 100644 --- a/packages/Catch2/include/internal/catch_session.cpp +++ b/packages/Catch2/include/internal/catch_session.cpp @@ -54,8 +54,6 @@ namespace Catch { Catch::Totals runTests(std::shared_ptr<Config> const& config) { - // FixMe: Add listeners in order first, then add reporters. - auto reporter = makeReporter(config); RunContext context(config, std::move(reporter)); @@ -185,22 +183,8 @@ namespace Catch { return 0; } - void Session::useConfigData( ConfigData const& configData ) { - m_configData = configData; - m_config.reset(); - } - - int Session::run( int argc, char* argv[] ) { - if( m_startupExceptions ) - return 1; - int returnCode = applyCommandLine( argc, argv ); - if( returnCode == 0 ) - returnCode = run(); - return returnCode; - } - #if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE) - int Session::run( int argc, wchar_t* const argv[] ) { + int Session::applyCommandLine( int argc, wchar_t const * const * argv ) { char **utf8Argv = new char *[ argc ]; @@ -212,7 +196,7 @@ namespace Catch { WideCharToMultiByte( CP_UTF8, 0, argv[i], -1, utf8Argv[i], bufSize, NULL, NULL ); } - int returnCode = run( argc, utf8Argv ); + int returnCode = applyCommandLine( argc, utf8Argv ); for ( int i = 0; i < argc; ++i ) delete [] utf8Argv[ i ]; @@ -222,6 +206,12 @@ namespace Catch { return returnCode; } #endif + + void Session::useConfigData( ConfigData const& configData ) { + m_configData = configData; + m_config.reset(); + } + int Session::run() { if( ( m_configData.waitForKeypress & WaitForKeypress::BeforeStart ) != 0 ) { Catch::cout() << "...waiting for enter/ return before starting" << std::endl; diff --git a/packages/Catch2/include/internal/catch_session.h b/packages/Catch2/include/internal/catch_session.h index eb8013cd2f18f4b6b6b3b97096a07a5263badcd5..af820da44729926729d368a754445375593bf93a 100644 --- a/packages/Catch2/include/internal/catch_session.h +++ b/packages/Catch2/include/internal/catch_session.h @@ -26,13 +26,22 @@ namespace Catch { void libIdentify(); int applyCommandLine( int argc, char const * const * argv ); + #if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE) + int applyCommandLine( int argc, wchar_t const * const * argv ); + #endif void useConfigData( ConfigData const& configData ); - int run( int argc, char* argv[] ); - #if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE) - int run( int argc, wchar_t* const argv[] ); - #endif + template<typename CharT> + int run(int argc, CharT const * const argv[]) { + if (m_startupExceptions) + return 1; + int returnCode = applyCommandLine(argc, argv); + if (returnCode == 0) + returnCode = run(); + return returnCode; + } + int run(); clara::Parser const& cli() const; diff --git a/packages/Catch2/include/internal/catch_tostring.cpp b/packages/Catch2/include/internal/catch_tostring.cpp index 4e0c027d3b0e09931bd7403e0669e84b38f748fe..8cbabbf26e854bc7943f284eaf3565ab52d354ab 100644 --- a/packages/Catch2/include/internal/catch_tostring.cpp +++ b/packages/Catch2/include/internal/catch_tostring.cpp @@ -205,7 +205,7 @@ std::string StringMaker<bool>::convert(bool b) { return b ? "true" : "false"; } -std::string StringMaker<char>::convert(char value) { +std::string StringMaker<signed char>::convert(signed char value) { if (value == '\r') { return "'\\r'"; } else if (value == '\f') { @@ -222,8 +222,8 @@ std::string StringMaker<char>::convert(char value) { return chstr; } } -std::string StringMaker<signed char>::convert(signed char c) { - return ::Catch::Detail::stringify(static_cast<char>(c)); +std::string StringMaker<char>::convert(char c) { + return ::Catch::Detail::stringify(static_cast<signed char>(c)); } std::string StringMaker<unsigned char>::convert(unsigned char c) { return ::Catch::Detail::stringify(static_cast<char>(c)); diff --git a/packages/Catch2/include/internal/catch_tostring.h b/packages/Catch2/include/internal/catch_tostring.h index 137d97592f9c97653ba49e97b5223d2e519b7ef6..3aff268bc312d584a520c8465fbfd07240262266 100644 --- a/packages/Catch2/include/internal/catch_tostring.h +++ b/packages/Catch2/include/internal/catch_tostring.h @@ -29,15 +29,7 @@ #pragma warning(disable:4180) // We attempt to stream a function (address) by const&, which MSVC complains about but is harmless #endif - -// We need a dummy global operator<< so we can bring it into Catch namespace later -struct Catch_global_namespace_dummy {}; -std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); - namespace Catch { - // Bring in operator<< from global namespace into Catch namespace - using ::operator<<; - namespace Detail { extern const std::string unprintableString; diff --git a/packages/Catch2/include/internal/catch_version.cpp b/packages/Catch2/include/internal/catch_version.cpp index a57553c0d0b9382e5e98eb1d91df924a1f0f186f..690d4f7b7fecca5f82a725aded88c72056b96b7f 100644 --- a/packages/Catch2/include/internal/catch_version.cpp +++ b/packages/Catch2/include/internal/catch_version.cpp @@ -37,7 +37,7 @@ namespace Catch { } Version const& libraryVersion() { - static Version version( 2, 4, 1, "", 0 ); + static Version version( 2, 4, 2, "", 0 ); return version; } diff --git a/packages/Catch2/include/reporters/catch_reporter_bases.cpp b/packages/Catch2/include/reporters/catch_reporter_bases.cpp index 4dd4f95dcae06f08f191ceca0bf982a4a98a2d10..fa441ee547f10a7ac194f525376a96217b2b6b35 100644 --- a/packages/Catch2/include/reporters/catch_reporter_bases.cpp +++ b/packages/Catch2/include/reporters/catch_reporter_bases.cpp @@ -30,7 +30,7 @@ namespace Catch { // + 1 for null terminator const std::size_t maxDoubleSize = DBL_MAX_10_EXP + 1 + 1 + 3 + 1; char buffer[maxDoubleSize]; - + // Save previous errno, to prevent sprintf from overwriting it ErrnoGuard guard; #ifdef _MSC_VER @@ -45,6 +45,10 @@ namespace Catch { TestEventListenerBase::TestEventListenerBase(ReporterConfig const & _config) :StreamingReporterBase(_config) {} + std::set<Verbosity> TestEventListenerBase::getSupportedVerbosities() { + return { Verbosity::Quiet, Verbosity::Normal, Verbosity::High }; + } + void TestEventListenerBase::assertionStarting(AssertionInfo const &) {} bool TestEventListenerBase::assertionEnded(AssertionStats const &) { diff --git a/packages/Catch2/include/reporters/catch_reporter_bases.hpp b/packages/Catch2/include/reporters/catch_reporter_bases.hpp index ae1618fe4150bcf830ed4cd42e2677fd1d1307de..4a27db681c4f8b77cfce8f0b9662c4a091703e06 100644 --- a/packages/Catch2/include/reporters/catch_reporter_bases.hpp +++ b/packages/Catch2/include/reporters/catch_reporter_bases.hpp @@ -217,7 +217,7 @@ namespace Catch { node->children.push_back(m_rootSection); m_testCases.push_back(node); m_rootSection.reset(); - + assert(m_deepestSection); m_deepestSection->stdOut = testCaseStats.stdOut; m_deepestSection->stdErr = testCaseStats.stdErr; @@ -266,6 +266,8 @@ namespace Catch { struct TestEventListenerBase : StreamingReporterBase<TestEventListenerBase> { TestEventListenerBase( ReporterConfig const& _config ); + static std::set<Verbosity> getSupportedVerbosities(); + void assertionStarting(AssertionInfo const&) override; bool assertionEnded(AssertionStats const&) override; }; diff --git a/packages/Catch2/include/reporters/catch_reporter_console.cpp b/packages/Catch2/include/reporters/catch_reporter_console.cpp index 54b62cd808bcbf34fbafeced15974135cfcdb0ae..500677b9caab33a422527151eeab1d3284794247 100644 --- a/packages/Catch2/include/reporters/catch_reporter_console.cpp +++ b/packages/Catch2/include/reporters/catch_reporter_console.cpp @@ -111,8 +111,6 @@ public: void print() const { printSourceInfo(); if (stats.totals.assertions.total() > 0) { - if (result.isOk()) - stream << '\n'; printResultType(); printOriginalExpression(); printReconstructedExpression(); diff --git a/packages/Catch2/include/reporters/catch_reporter_xml.cpp b/packages/Catch2/include/reporters/catch_reporter_xml.cpp index c32005370dc6652eb205cbbd14d1de030ab1bb5e..902014cf45c29d5ef519c74af9193cec12132827 100644 --- a/packages/Catch2/include/reporters/catch_reporter_xml.cpp +++ b/packages/Catch2/include/reporters/catch_reporter_xml.cpp @@ -55,6 +55,9 @@ namespace Catch { m_xml.startElement( "Catch" ); if( !m_config->name().empty() ) m_xml.writeAttribute( "name", m_config->name() ); + if( m_config->rngSeed() != 0 ) + m_xml.scopedElement( "Randomness" ) + .writeAttribute( "seed", m_config->rngSeed() ); } void XmlReporter::testGroupStarting( GroupInfo const& groupInfo ) { diff --git a/packages/Catch2/projects/CMakeLists.txt b/packages/Catch2/projects/CMakeLists.txt index 8e2e4b13eb094863e59e1a0ca0f1361aeff35e20..ac10793bd82d672fdbc42b6189d71cf7c12497c8 100644 --- a/packages/Catch2/projects/CMakeLists.txt +++ b/packages/Catch2/projects/CMakeLists.txt @@ -303,7 +303,7 @@ if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) endif() if ( CMAKE_CXX_COMPILER_ID MATCHES "MSVC" ) STRING(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # override default warning level - target_compile_options( SelfTest PRIVATE /w44265 /w44061 /w44062 ) + target_compile_options( SelfTest PRIVATE /w44265 /w44061 /w44062 /w45038 ) if (CATCH_ENABLE_WERROR) target_compile_options( SelfTest PRIVATE /WX) endif() diff --git a/packages/Catch2/projects/ExtraTests/X01-PrefixedMacros.cpp b/packages/Catch2/projects/ExtraTests/X01-PrefixedMacros.cpp index 08bf404fb8ca4639b38d99dff4c0ecade13dba63..7671cbc4dfefe762efaca7078501206b96df562e 100644 --- a/packages/Catch2/projects/ExtraTests/X01-PrefixedMacros.cpp +++ b/packages/Catch2/projects/ExtraTests/X01-PrefixedMacros.cpp @@ -2,8 +2,12 @@ // Test that Catch's prefixed macros compile and run properly. #define CATCH_CONFIG_MAIN +// This won't provide full coverage, but it might be worth checking +// the other branch as well +#define CATCH_CONFIG_RUNTIME_STATIC_REQUIRE #include <catch2/catch.hpp> +#include <type_traits> #include <stdexcept> [[noreturn]] @@ -23,7 +27,7 @@ CATCH_TEST_CASE("PrefixedMacros") { CATCH_REQUIRE_THROWS_WITH(this_throws(), "Some msg"); CATCH_REQUIRE_THROWS_MATCHES(this_throws(), std::runtime_error, Predicate<std::runtime_error>([](std::runtime_error const&) { return true; })); CATCH_REQUIRE_NOTHROW(this_doesnt_throw()); - + CATCH_CHECK( 1 == 1 ); CATCH_CHECK_FALSE( 1 != 1 ); CATCH_CHECKED_IF( 1 == 1 ) { @@ -31,15 +35,15 @@ CATCH_TEST_CASE("PrefixedMacros") { } CATCH_CHECKED_ELSE ( 1 == 1 ) { CATCH_SUCCEED("don't care"); } - + CATCH_CHECK_NOFAIL(1 == 2); - + CATCH_CHECK_THROWS(this_throws()); CATCH_CHECK_THROWS_AS(this_throws(), std::runtime_error); CATCH_CHECK_THROWS_WITH(this_throws(), "Some msg"); CATCH_CHECK_THROWS_MATCHES(this_throws(), std::runtime_error, Predicate<std::runtime_error>([](std::runtime_error const&) { return true; })); - CATCH_CHECK_NOTHROW(this_doesnt_throw()); - + CATCH_CHECK_NOTHROW(this_doesnt_throw()); + CATCH_REQUIRE_THAT("abcd", Equals("abcd")); CATCH_CHECK_THAT("bdef", Equals("bdef")); @@ -52,6 +56,9 @@ CATCH_TEST_CASE("PrefixedMacros") { CATCH_FAIL_CHECK( "failure" ); } } + + CATCH_STATIC_REQUIRE( std::is_void<void>::value ); + CATCH_STATIC_REQUIRE_FALSE( std::is_void<int>::value ); } CATCH_ANON_TEST_CASE() { diff --git a/packages/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt b/packages/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt index 2138d26ee9b7fe660a03371ca7bcfaa0b4c2f905..41b6371284d3bd1d6e1c2954fcb1ed8512bd4386 100644 --- a/packages/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt +++ b/packages/Catch2/projects/SelfTest/Baselines/compact.sw.approved.txt @@ -13,6 +13,7 @@ Misc.tests.cpp:<line number>: passed: Compilation.tests.cpp:<line number>: passed: std::memcmp(uarr, "123", sizeof(uarr)) == 0 for: 0 == 0 with 2 messages: 'uarr := "123"' and 'sarr := "456"' Compilation.tests.cpp:<line number>: passed: std::memcmp(sarr, "456", sizeof(sarr)) == 0 for: 0 == 0 with 2 messages: 'uarr := "123"' and 'sarr := "456"' Compilation.tests.cpp:<line number>: passed: +Compilation.tests.cpp:<line number>: passed: h1 == h2 for: [1403 helper] == [1403 helper] Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'answer := 42' with 1 message: 'expected exception' Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'answer := 42'; expression was: thisThrows() with 1 message: 'expected exception' Exception.tests.cpp:<line number>: passed: thisThrows() with 1 message: 'answer := 42' @@ -223,16 +224,16 @@ Tricky.tests.cpp:<line number>: passed: y.v == 0 for: 0 == 0 Tricky.tests.cpp:<line number>: passed: 0 == y.v for: 0 == 0 ToStringGeneral.tests.cpp:<line number>: passed: true with 1 message: 'i := 2' ToStringGeneral.tests.cpp:<line number>: passed: true with 1 message: '3' -ToStringGeneral.tests.cpp:<line number>: passed: tab == '/t' for: '/t' == '/t' -ToStringGeneral.tests.cpp:<line number>: passed: newline == '/n' for: '/n' == '/n' -ToStringGeneral.tests.cpp:<line number>: passed: carr_return == '/r' for: '/r' == '/r' -ToStringGeneral.tests.cpp:<line number>: passed: form_feed == '/f' for: '/f' == '/f' +ToStringGeneral.tests.cpp:<line number>: passed: tab == '\t' for: '\t' == '\t' +ToStringGeneral.tests.cpp:<line number>: passed: newline == '\n' for: '\n' == '\n' +ToStringGeneral.tests.cpp:<line number>: passed: carr_return == '\r' for: '\r' == '\r' +ToStringGeneral.tests.cpp:<line number>: passed: form_feed == '\f' for: '\f' == '\f' ToStringGeneral.tests.cpp:<line number>: passed: space == ' ' for: ' ' == ' ' ToStringGeneral.tests.cpp:<line number>: passed: c == chars[i] for: 'a' == 'a' ToStringGeneral.tests.cpp:<line number>: passed: c == chars[i] for: 'z' == 'z' ToStringGeneral.tests.cpp:<line number>: passed: c == chars[i] for: 'A' == 'A' ToStringGeneral.tests.cpp:<line number>: passed: c == chars[i] for: 'Z' == 'Z' -ToStringGeneral.tests.cpp:<line number>: passed: null_terminator == '/0' for: 0 == 0 +ToStringGeneral.tests.cpp:<line number>: passed: null_terminator == '\0' for: 0 == 0 ToStringGeneral.tests.cpp:<line number>: passed: c == i for: 2 == 2 ToStringGeneral.tests.cpp:<line number>: passed: c == i for: 3 == 3 ToStringGeneral.tests.cpp:<line number>: passed: c == i for: 4 == 4 @@ -495,6 +496,8 @@ Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'c Tricky.tests.cpp:<line number>: passed: True for: {?} Tricky.tests.cpp:<line number>: passed: !False for: true Tricky.tests.cpp:<line number>: passed: !(False) for: !{?} +Compilation.tests.cpp:<line number>: passed: with 1 message: 'std::is_void<void>::value' +Compilation.tests.cpp:<line number>: passed: with 1 message: '!(std::is_void<int>::value)' Condition.tests.cpp:<line number>: failed: data.int_seven > 7 for: 7 > 7 Condition.tests.cpp:<line number>: failed: data.int_seven < 7 for: 7 < 7 Condition.tests.cpp:<line number>: failed: data.int_seven > 8 for: 7 > 8 @@ -676,6 +679,7 @@ Condition.tests.cpp:<line number>: passed: cpc != 0 for: 0x<hex digits> != 0 Condition.tests.cpp:<line number>: passed: returnsNull() == 0 for: {null string} == 0 Condition.tests.cpp:<line number>: passed: returnsConstNull() == 0 for: {null string} == 0 Condition.tests.cpp:<line number>: passed: 0 != p for: 0 != 0x<hex digits> +Matchers.tests.cpp:<line number>: passed: "foo", Predicate<const char*>([] (const char* const&) { return true; }) for: "foo" matches undescribed predicate CmdLine.tests.cpp:<line number>: passed: result for: {?} CmdLine.tests.cpp:<line number>: passed: config.processName == "" for: "" == "" CmdLine.tests.cpp:<line number>: passed: result for: {?} @@ -704,6 +708,8 @@ CmdLine.tests.cpp:<line number>: passed: config.reporterName == "xml" for: "xml" CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--reporter", "junit"}) for: {?} CmdLine.tests.cpp:<line number>: passed: config.reporterName == "junit" for: "junit" == "junit" CmdLine.tests.cpp:<line number>: passed: !(cli.parse({ "test", "-r", "xml", "-r", "junit" })) for: !{?} +CmdLine.tests.cpp:<line number>: passed: !result for: true +CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains("Unrecognized reporter") for: "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter" CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-b"}) for: {?} CmdLine.tests.cpp:<line number>: passed: config.shouldDebugBreak == true for: true == true CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--break"}) for: {?} @@ -1064,50 +1070,50 @@ Xml.tests.cpp:<line number>: passed: encode( stringWithQuotes ) == stringWithQuo Xml.tests.cpp:<line number>: passed: encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't "quote" me on that" for: "don't "quote" me on that" == "don't "quote" me on that" -Xml.tests.cpp:<line number>: passed: encode( "[/x01]" ) == "[//x01]" for: "[/x01]" == "[/x01]" -Xml.tests.cpp:<line number>: passed: encode( "[/x7F]" ) == "[//x7F]" for: "[/x7F]" == "[/x7F]" +Xml.tests.cpp:<line number>: passed: encode( "[\x01]" ) == "[\\x01]" for: "[\x01]" == "[\x01]" +Xml.tests.cpp:<line number>: passed: encode( "[\x7F]" ) == "[\\x7F]" for: "[\x7F]" == "[\x7F]" Xml.tests.cpp:<line number>: passed: encode(u8"Here be 👾") == u8"Here be 👾" for: "Here be 👾" == "Here be 👾" Xml.tests.cpp:<line number>: passed: encode(u8"šš") == u8"šš" for: "šš" == "šš" -Xml.tests.cpp:<line number>: passed: encode("/xDF/xBF") == "/xDF/xBF" for: "߿" == "߿" -Xml.tests.cpp:<line number>: passed: encode("/xE0/xA0/x80") == "/xE0/xA0/x80" for: "ࠀ" == "ࠀ" -Xml.tests.cpp:<line number>: passed: encode("/xED/x9F/xBF") == "/xED/x9F/xBF" for: "" == "" -Xml.tests.cpp:<line number>: passed: encode("/xEE/x80/x80") == "/xEE/x80/x80" for: "" == "" -Xml.tests.cpp:<line number>: passed: encode("/xEF/xBF/xBF") == "/xEF/xBF/xBF" for: "" == "" -Xml.tests.cpp:<line number>: passed: encode("/xF0/x90/x80/x80") == "/xF0/x90/x80/x80" for: "𐀀" == "𐀀" -Xml.tests.cpp:<line number>: passed: encode("/xF4/x8F/xBF/xBF") == "/xF4/x8F/xBF/xBF" for: "" == "" -Xml.tests.cpp:<line number>: passed: encode("Here /xFF be 👾") == u8"Here //xFF be 👾" for: "Here /xFF be 👾" == "Here /xFF be 👾" -Xml.tests.cpp:<line number>: passed: encode("/xFF") == "//xFF" for: "/xFF" == "/xFF" -Xml.tests.cpp:<line number>: passed: encode("/xC5/xC5/xA0") == u8"//xC5Š" for: "/xC5Š" == "/xC5Š" -Xml.tests.cpp:<line number>: passed: encode("/xF4/x90/x80/x80") == u8"//xF4//x90//x80//x80" for: "/xF4/x90/x80/x80" == "/xF4/x90/x80/x80" -Xml.tests.cpp:<line number>: passed: encode("/xC0/x80") == u8"//xC0//x80" for: "/xC0/x80" == "/xC0/x80" -Xml.tests.cpp:<line number>: passed: encode("/xF0/x80/x80/x80") == u8"//xF0//x80//x80//x80" for: "/xF0/x80/x80/x80" == "/xF0/x80/x80/x80" -Xml.tests.cpp:<line number>: passed: encode("/xC1/xBF") == u8"//xC1//xBF" for: "/xC1/xBF" == "/xC1/xBF" -Xml.tests.cpp:<line number>: passed: encode("/xE0/x9F/xBF") == u8"//xE0//x9F//xBF" for: "/xE0/x9F/xBF" == "/xE0/x9F/xBF" -Xml.tests.cpp:<line number>: passed: encode("/xF0/x8F/xBF/xBF") == u8"//xF0//x8F//xBF//xBF" for: "/xF0/x8F/xBF/xBF" == "/xF0/x8F/xBF/xBF" -Xml.tests.cpp:<line number>: passed: encode("/xED/xA0/x80") == "/xED/xA0/x80" for: "���" == "���" -Xml.tests.cpp:<line number>: passed: encode("/xED/xAF/xBF") == "/xED/xAF/xBF" for: "���" == "���" -Xml.tests.cpp:<line number>: passed: encode("/xED/xB0/x80") == "/xED/xB0/x80" for: "���" == "���" -Xml.tests.cpp:<line number>: passed: encode("/xED/xBF/xBF") == "/xED/xBF/xBF" for: "���" == "���" -Xml.tests.cpp:<line number>: passed: encode("/x80") == u8"//x80" for: "/x80" == "/x80" -Xml.tests.cpp:<line number>: passed: encode("/x81") == u8"//x81" for: "/x81" == "/x81" -Xml.tests.cpp:<line number>: passed: encode("/xBC") == u8"//xBC" for: "/xBC" == "/xBC" -Xml.tests.cpp:<line number>: passed: encode("/xBF") == u8"//xBF" for: "/xBF" == "/xBF" -Xml.tests.cpp:<line number>: passed: encode("/xF5/x80/x80/x80") == u8"//xF5//x80//x80//x80" for: "/xF5/x80/x80/x80" == "/xF5/x80/x80/x80" -Xml.tests.cpp:<line number>: passed: encode("/xF6/x80/x80/x80") == u8"//xF6//x80//x80//x80" for: "/xF6/x80/x80/x80" == "/xF6/x80/x80/x80" -Xml.tests.cpp:<line number>: passed: encode("/xF7/x80/x80/x80") == u8"//xF7//x80//x80//x80" for: "/xF7/x80/x80/x80" == "/xF7/x80/x80/x80" -Xml.tests.cpp:<line number>: passed: encode("/xDE") == u8"//xDE" for: "/xDE" == "/xDE" -Xml.tests.cpp:<line number>: passed: encode("/xDF") == u8"//xDF" for: "/xDF" == "/xDF" -Xml.tests.cpp:<line number>: passed: encode("/xE0") == u8"//xE0" for: "/xE0" == "/xE0" -Xml.tests.cpp:<line number>: passed: encode("/xEF") == u8"//xEF" for: "/xEF" == "/xEF" -Xml.tests.cpp:<line number>: passed: encode("/xF0") == u8"//xF0" for: "/xF0" == "/xF0" -Xml.tests.cpp:<line number>: passed: encode("/xF4") == u8"//xF4" for: "/xF4" == "/xF4" -Xml.tests.cpp:<line number>: passed: encode("/xE0/x80") == u8"//xE0//x80" for: "/xE0/x80" == "/xE0/x80" -Xml.tests.cpp:<line number>: passed: encode("/xE0/xBF") == u8"//xE0//xBF" for: "/xE0/xBF" == "/xE0/xBF" -Xml.tests.cpp:<line number>: passed: encode("/xE1/x80") == u8"//xE1//x80" for: "/xE1/x80" == "/xE1/x80" -Xml.tests.cpp:<line number>: passed: encode("/xF0/x80") == u8"//xF0//x80" for: "/xF0/x80" == "/xF0/x80" -Xml.tests.cpp:<line number>: passed: encode("/xF4/x80") == u8"//xF4//x80" for: "/xF4/x80" == "/xF4/x80" -Xml.tests.cpp:<line number>: passed: encode("/xF0/x80/x80") == u8"//xF0//x80//x80" for: "/xF0/x80/x80" == "/xF0/x80/x80" -Xml.tests.cpp:<line number>: passed: encode("/xF4/x80/x80") == u8"//xF4//x80//x80" for: "/xF4/x80/x80" == "/xF4/x80/x80" +Xml.tests.cpp:<line number>: passed: encode("\xDF\xBF") == "\xDF\xBF" for: "߿" == "߿" +Xml.tests.cpp:<line number>: passed: encode("\xE0\xA0\x80") == "\xE0\xA0\x80" for: "ࠀ" == "ࠀ" +Xml.tests.cpp:<line number>: passed: encode("\xED\x9F\xBF") == "\xED\x9F\xBF" for: "" == "" +Xml.tests.cpp:<line number>: passed: encode("\xEE\x80\x80") == "\xEE\x80\x80" for: "" == "" +Xml.tests.cpp:<line number>: passed: encode("\xEF\xBF\xBF") == "\xEF\xBF\xBF" for: "" == "" +Xml.tests.cpp:<line number>: passed: encode("\xF0\x90\x80\x80") == "\xF0\x90\x80\x80" for: "𐀀" == "𐀀" +Xml.tests.cpp:<line number>: passed: encode("\xF4\x8F\xBF\xBF") == "\xF4\x8F\xBF\xBF" for: "" == "" +Xml.tests.cpp:<line number>: passed: encode("Here \xFF be 👾") == u8"Here \\xFF be 👾" for: "Here \xFF be 👾" == "Here \xFF be 👾" +Xml.tests.cpp:<line number>: passed: encode("\xFF") == "\\xFF" for: "\xFF" == "\xFF" +Xml.tests.cpp:<line number>: passed: encode("\xC5\xC5\xA0") == u8"\\xC5Š" for: "\xC5Š" == "\xC5Š" +Xml.tests.cpp:<line number>: passed: encode("\xF4\x90\x80\x80") == u8"\\xF4\\x90\\x80\\x80" for: "\xF4\x90\x80\x80" == "\xF4\x90\x80\x80" +Xml.tests.cpp:<line number>: passed: encode("\xC0\x80") == u8"\\xC0\\x80" for: "\xC0\x80" == "\xC0\x80" +Xml.tests.cpp:<line number>: passed: encode("\xF0\x80\x80\x80") == u8"\\xF0\\x80\\x80\\x80" for: "\xF0\x80\x80\x80" == "\xF0\x80\x80\x80" +Xml.tests.cpp:<line number>: passed: encode("\xC1\xBF") == u8"\\xC1\\xBF" for: "\xC1\xBF" == "\xC1\xBF" +Xml.tests.cpp:<line number>: passed: encode("\xE0\x9F\xBF") == u8"\\xE0\\x9F\\xBF" for: "\xE0\x9F\xBF" == "\xE0\x9F\xBF" +Xml.tests.cpp:<line number>: passed: encode("\xF0\x8F\xBF\xBF") == u8"\\xF0\\x8F\\xBF\\xBF" for: "\xF0\x8F\xBF\xBF" == "\xF0\x8F\xBF\xBF" +Xml.tests.cpp:<line number>: passed: encode("\xED\xA0\x80") == "\xED\xA0\x80" for: "���" == "���" +Xml.tests.cpp:<line number>: passed: encode("\xED\xAF\xBF") == "\xED\xAF\xBF" for: "���" == "���" +Xml.tests.cpp:<line number>: passed: encode("\xED\xB0\x80") == "\xED\xB0\x80" for: "���" == "���" +Xml.tests.cpp:<line number>: passed: encode("\xED\xBF\xBF") == "\xED\xBF\xBF" for: "���" == "���" +Xml.tests.cpp:<line number>: passed: encode("\x80") == u8"\\x80" for: "\x80" == "\x80" +Xml.tests.cpp:<line number>: passed: encode("\x81") == u8"\\x81" for: "\x81" == "\x81" +Xml.tests.cpp:<line number>: passed: encode("\xBC") == u8"\\xBC" for: "\xBC" == "\xBC" +Xml.tests.cpp:<line number>: passed: encode("\xBF") == u8"\\xBF" for: "\xBF" == "\xBF" +Xml.tests.cpp:<line number>: passed: encode("\xF5\x80\x80\x80") == u8"\\xF5\\x80\\x80\\x80" for: "\xF5\x80\x80\x80" == "\xF5\x80\x80\x80" +Xml.tests.cpp:<line number>: passed: encode("\xF6\x80\x80\x80") == u8"\\xF6\\x80\\x80\\x80" for: "\xF6\x80\x80\x80" == "\xF6\x80\x80\x80" +Xml.tests.cpp:<line number>: passed: encode("\xF7\x80\x80\x80") == u8"\\xF7\\x80\\x80\\x80" for: "\xF7\x80\x80\x80" == "\xF7\x80\x80\x80" +Xml.tests.cpp:<line number>: passed: encode("\xDE") == u8"\\xDE" for: "\xDE" == "\xDE" +Xml.tests.cpp:<line number>: passed: encode("\xDF") == u8"\\xDF" for: "\xDF" == "\xDF" +Xml.tests.cpp:<line number>: passed: encode("\xE0") == u8"\\xE0" for: "\xE0" == "\xE0" +Xml.tests.cpp:<line number>: passed: encode("\xEF") == u8"\\xEF" for: "\xEF" == "\xEF" +Xml.tests.cpp:<line number>: passed: encode("\xF0") == u8"\\xF0" for: "\xF0" == "\xF0" +Xml.tests.cpp:<line number>: passed: encode("\xF4") == u8"\\xF4" for: "\xF4" == "\xF4" +Xml.tests.cpp:<line number>: passed: encode("\xE0\x80") == u8"\\xE0\\x80" for: "\xE0\x80" == "\xE0\x80" +Xml.tests.cpp:<line number>: passed: encode("\xE0\xBF") == u8"\\xE0\\xBF" for: "\xE0\xBF" == "\xE0\xBF" +Xml.tests.cpp:<line number>: passed: encode("\xE1\x80") == u8"\\xE1\\x80" for: "\xE1\x80" == "\xE1\x80" +Xml.tests.cpp:<line number>: passed: encode("\xF0\x80") == u8"\\xF0\\x80" for: "\xF0\x80" == "\xF0\x80" +Xml.tests.cpp:<line number>: passed: encode("\xF4\x80") == u8"\\xF4\\x80" for: "\xF4\x80" == "\xF4\x80" +Xml.tests.cpp:<line number>: passed: encode("\xF0\x80\x80") == u8"\\xF0\\x80\\x80" for: "\xF0\x80\x80" == "\xF0\x80\x80" +Xml.tests.cpp:<line number>: passed: encode("\xF4\x80\x80") == u8"\\xF4\\x80\\x80" for: "\xF4\x80\x80" == "\xF4\x80\x80" ToStringVector.tests.cpp:<line number>: passed: Catch::Detail::stringify( empty ) == "{ }" for: "{ }" == "{ }" ToStringVector.tests.cpp:<line number>: passed: Catch::Detail::stringify( oneValue ) == "{ 42 }" for: "{ 42 }" == "{ 42 }" ToStringVector.tests.cpp:<line number>: passed: Catch::Detail::stringify( twoValues ) == "{ 42, 250 }" for: "{ 42, 250 }" == "{ 42, 250 }" @@ -1167,7 +1173,7 @@ Misc.tests.cpp:<line number>: passed: Misc.tests.cpp:<line number>: passed: makeString( false ) != static_cast<char*>(0) for: "valid string" != {null string} Misc.tests.cpp:<line number>: passed: makeString( true ) == static_cast<char*>(0) for: {null string} == {null string} Tricky.tests.cpp:<line number>: passed: ptr.get() == 0 for: 0 == 0 -ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify( pair ) == "{ { 42, /"Arthur/" }, { /"Ford/", 24 } }" for: "{ { 42, "Arthur" }, { "Ford", 24 } }" +ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" for: "{ { 42, "Arthur" }, { "Ford", 24 } }" == "{ { 42, "Arthur" }, { "Ford", 24 } }" Tricky.tests.cpp:<line number>: passed: p == 0 for: 0 == 0 @@ -1191,18 +1197,18 @@ String.tests.cpp:<line number>: passed: s == "didn|'t" for: "didn|'t" == "didn|' Misc.tests.cpp:<line number>: failed: false with 1 message: '3' Message.tests.cpp:<line number>: failed: false with 2 messages: 'hi' and 'i := 7' ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( emptyMap ) == "{ }" for: "{ }" == "{ }" -ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( map ) == "{ { /"one/", 1 } }" for: "{ { "one", 1 } }" == "{ { "one", 1 } }" -ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( map ) == "{ { /"abc/", 1 }, { /"def/", 2 }, { /"ghi/", 3 } }" for: "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }" +ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( map ) == "{ { \"one\", 1 } }" for: "{ { "one", 1 } }" == "{ { "one", 1 } }" +ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( map ) == "{ { \"abc\", 1 }, { \"def\", 2 }, { \"ghi\", 3 } }" for: "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }" == "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }" -ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(value) == "{ 34, /"xyzzy/" }" for: "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" -ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify( value ) == "{ 34, /"xyzzy/" }" for: "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" +ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(value) == "{ 34, \"xyzzy\" }" for: "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" +ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify( value ) == "{ 34, \"xyzzy\" }" for: "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( emptySet ) == "{ }" for: "{ }" == "{ }" -ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( set ) == "{ /"one/" }" for: "{ "one" }" == "{ "one" }" -ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( set ) == "{ /"abc/", /"def/", /"ghi/" }" for: "{ "abc", "def", "ghi" }" +ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( set ) == "{ \"one\" }" for: "{ "one" }" == "{ "one" }" +ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify( set ) == "{ \"abc\", \"def\", \"ghi\" }" for: "{ "abc", "def", "ghi" }" == "{ "abc", "def", "ghi" }" -ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify( pr ) == "{ { /"green/", 55 } }" for: "{ { "green", 55 } }" +ToStringPair.tests.cpp:<line number>: passed: ::Catch::Detail::stringify( pr ) == "{ { \"green\", 55 } }" for: "{ { "green", 55 } }" == "{ { "green", 55 } }" Tricky.tests.cpp:<line number>: failed: std::string( "first" ) == "second" for: "first" == "second" @@ -1241,10 +1247,10 @@ Generators.tests.cpp:<line number>: passed: data.str.size() == data.len for: 3 = Generators.tests.cpp:<line number>: passed: data.str.size() == data.len for: 5 == 5 Generators.tests.cpp:<line number>: passed: data.str.size() == data.len for: 4 == 4 Exception.tests.cpp:<line number>: failed: unexpected exception with message: 'Why would you throw a std::string?' -Misc.tests.cpp:<line number>: passed: result == "/"wide load/"" for: ""wide load"" == ""wide load"" -Misc.tests.cpp:<line number>: passed: result == "/"wide load/"" for: ""wide load"" == ""wide load"" -Misc.tests.cpp:<line number>: passed: result == "/"wide load/"" for: ""wide load"" == ""wide load"" -Misc.tests.cpp:<line number>: passed: result == "/"wide load/"" for: ""wide load"" == ""wide load"" +Misc.tests.cpp:<line number>: passed: result == "\"wide load\"" for: ""wide load"" == ""wide load"" +Misc.tests.cpp:<line number>: passed: result == "\"wide load\"" for: ""wide load"" == ""wide load"" +Misc.tests.cpp:<line number>: passed: result == "\"wide load\"" for: ""wide load"" == ""wide load"" +Misc.tests.cpp:<line number>: passed: result == "\"wide load\"" for: ""wide load"" == ""wide load"" EnumToString.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(e0) == "E2/V0" for: "E2/V0" == "E2/V0" EnumToString.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(e1) == "E2/V1" for: "E2/V1" == "E2/V1" EnumToString.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(e3) == "Unknown enum value 10" for: "Unknown enum value 10" @@ -1261,17 +1267,17 @@ ToStringTuple.tests.cpp:<line number>: passed: "{ }" == ::Catch::Detail::stringi ToStringTuple.tests.cpp:<line number>: passed: "1.2f" == ::Catch::Detail::stringify(float(1.2)) for: "1.2f" == "1.2f" ToStringTuple.tests.cpp:<line number>: passed: "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) for: "{ 1.2f, 0 }" == "{ 1.2f, 0 }" ToStringTuple.tests.cpp:<line number>: passed: "{ 0 }" == ::Catch::Detail::stringify(type{0}) for: "{ 0 }" == "{ 0 }" -ToStringTuple.tests.cpp:<line number>: passed: "{ 0, 42, /"Catch me/" }" == ::Catch::Detail::stringify(value) for: "{ 0, 42, "Catch me" }" +ToStringTuple.tests.cpp:<line number>: passed: "{ 0, 42, \"Catch me\" }" == ::Catch::Detail::stringify(value) for: "{ 0, 42, "Catch me" }" == "{ 0, 42, "Catch me" }" -ToStringTuple.tests.cpp:<line number>: passed: "{ /"hello/", /"world/" }" == ::Catch::Detail::stringify(type{"hello","world"}) for: "{ "hello", "world" }" +ToStringTuple.tests.cpp:<line number>: passed: "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) for: "{ "hello", "world" }" == "{ "hello", "world" }" ToStringTuple.tests.cpp:<line number>: passed: "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) for: "{ { 42 }, { }, 1.2f }" == "{ { 42 }, { }, 1.2f }" ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(v) == "{ }" for: "{ }" == "{ }" -ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(v) == "{ { /"hello/" }, { /"world/" } }" for: "{ { "hello" }, { "world" } }" +ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }" for: "{ { "hello" }, { "world" } }" == "{ { "hello" }, { "world" } }" ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(bools) == "{ }" for: "{ }" == "{ }" @@ -1284,8 +1290,8 @@ ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(vv) = ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(vv) == "{ 42 }" for: "{ 42 }" == "{ 42 }" ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(vv) == "{ 42, 250 }" for: "{ 42, 250 }" == "{ 42, 250 }" ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(vv) == "{ }" for: "{ }" == "{ }" -ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(vv) == "{ /"hello/" }" for: "{ "hello" }" == "{ "hello" }" -ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(vv) == "{ /"hello/", /"world/" }" for: "{ "hello", "world" }" +ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(vv) == "{ \"hello\" }" for: "{ "hello" }" == "{ "hello" }" +ToStringVector.tests.cpp:<line number>: passed: ::Catch::Detail::stringify(vv) == "{ \"hello\", \"world\" }" for: "{ "hello", "world" }" == "{ "hello", "world" }" Misc.tests.cpp:<line number>: passed: v.size() == 5 for: 5 == 5 diff --git a/packages/Catch2/projects/SelfTest/Baselines/console.std.approved.txt b/packages/Catch2/projects/SelfTest/Baselines/console.std.approved.txt index 24755c802bbc3872813830ba0df7385d00aa1ea1..50632eb9738191b3224ec1f7b1a87c7be6e696f4 100644 --- a/packages/Catch2/projects/SelfTest/Baselines/console.std.approved.txt +++ b/packages/Catch2/projects/SelfTest/Baselines/console.std.approved.txt @@ -3,6 +3,8 @@ <exe-name> is a <version> host application. Run with -? for options +Randomness seeded to: 1 + ------------------------------------------------------------------------------- #748 - captures with unexpected exceptions outside assertions @@ -390,8 +392,7 @@ Message.tests.cpp:<line number>: FAILED: explicitly with message: This is a failure -Message.tests.cpp:<line number>: -warning: +Message.tests.cpp:<line number>: warning: This message appears in the output ------------------------------------------------------------------------------- @@ -400,8 +401,7 @@ INFO and WARN do not abort tests Message.tests.cpp:<line number> ............................................................................... -Message.tests.cpp:<line number>: -warning: +Message.tests.cpp:<line number>: warning: this is a warning ------------------------------------------------------------------------------- @@ -526,8 +526,7 @@ Nice descriptive name Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -warning: +Misc.tests.cpp:<line number>: warning: This one ran ------------------------------------------------------------------------------- @@ -907,8 +906,7 @@ Where the LHS is not a simple value Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -warning: +Tricky.tests.cpp:<line number>: warning: Uncomment the code in this test to check that it gives a sensible compiler error @@ -918,8 +916,7 @@ Where there is more to the expression after the RHS Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -warning: +Tricky.tests.cpp:<line number>: warning: Uncomment the code in this test to check that it gives a sensible compiler error @@ -1096,6 +1093,6 @@ due to unexpected exception with message: Why would you throw a std::string? =============================================================================== -test cases: 213 | 160 passed | 49 failed | 4 failed as expected -assertions: 1228 | 1099 passed | 108 failed | 21 failed as expected +test cases: 216 | 163 passed | 49 failed | 4 failed as expected +assertions: 1234 | 1105 passed | 108 failed | 21 failed as expected diff --git a/packages/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt b/packages/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt index 27fa5c59db610747d3a9125fc215bf64e1e89d2e..4aae201240676462f05df4136ad874f7f5ab860e 100644 --- a/packages/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt +++ b/packages/Catch2/projects/SelfTest/Baselines/console.sw.approved.txt @@ -3,14 +3,15 @@ <exe-name> is a <version> host application. Run with -? for options +Randomness seeded to: 1 + ------------------------------------------------------------------------------- # A test name that starts with a # ------------------------------------------------------------------------------- Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: yay @@ -21,14 +22,12 @@ with message: Decomposition.tests.cpp:<line number> ............................................................................... -Decomposition.tests.cpp:<line number>: -PASSED: +Decomposition.tests.cpp:<line number>: PASSED: REQUIRE( fptr == 0 ) with expansion: 0 == 0 -Decomposition.tests.cpp:<line number>: -PASSED: +Decomposition.tests.cpp:<line number>: PASSED: REQUIRE( fptr == 0l ) with expansion: 0 == 0 @@ -39,14 +38,12 @@ with expansion: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( y.v == 0 ) with expansion: 0 == 0 -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( 0 == y.v ) with expansion: 0 == 0 @@ -57,38 +54,32 @@ with expansion: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 == t2 ) with expansion: {?} == {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 != t2 ) with expansion: {?} != {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 < t2 ) with expansion: {?} < {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 > t2 ) with expansion: {?} > {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 <= t2 ) with expansion: {?} <= {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 >= t2 ) with expansion: {?} >= {?} @@ -99,8 +90,7 @@ with expansion: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- #1238 @@ -108,8 +98,7 @@ PASSED: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( std::memcmp(uarr, "123", sizeof(uarr)) == 0 ) with expansion: 0 == 0 @@ -117,8 +106,7 @@ with messages: uarr := "123" sarr := "456" -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( std::memcmp(sarr, "456", sizeof(sarr)) == 0 ) with expansion: 0 == 0 @@ -132,8 +120,18 @@ with messages: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: + +------------------------------------------------------------------------------- +#1403 +------------------------------------------------------------------------------- +Compilation.tests.cpp:<line number> +............................................................................... + +Compilation.tests.cpp:<line number>: PASSED: + REQUIRE( h1 == h2 ) +with expansion: + [1403 helper] == [1403 helper] ------------------------------------------------------------------------------- #748 - captures with unexpected exceptions @@ -167,8 +165,7 @@ due to unexpected exception with messages: Exception.tests.cpp:<line number> ............................................................................... -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS( thisThrows() ) with message: answer := 42 @@ -179,8 +176,7 @@ with message: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( 42 == f ) with expansion: 42 == {?} @@ -191,38 +187,31 @@ with expansion: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( a == t ) with expansion: 3 == 3 -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: CHECK( a == t ) with expansion: 3 == 3 -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE_THROWS( throws_int(true) ) -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: CHECK_THROWS_AS( throws_int(true), int ) -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( throws_int(false) ) -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE_THAT( "aaa", Catch::EndsWith("aaa") ) with expansion: "aaa" ends with: "aaa" -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( templated_tests<int>(3) ) with expansion: true @@ -238,8 +227,7 @@ Misc.tests.cpp:<line number>: FAILED: with expansion: 1 == 0 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( errno == 1 ) with expansion: 1 == 1 @@ -250,8 +238,7 @@ with expansion: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( x == 4 ) with expansion: {?} == 4 @@ -265,8 +252,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -277,8 +263,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -289,8 +274,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -301,8 +285,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -313,8 +296,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -364,46 +346,38 @@ Condition.tests.cpp:<line number>: FAILED: Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( false == false ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( true == true ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( !false ) with expansion: true -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( false ) with expansion: !false -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( !falseValue ) with expansion: true -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( falseValue ) with expansion: !false -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( !(1 == 2) ) with expansion: true -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( 1 == 2 ) ------------------------------------------------------------------------------- @@ -413,14 +387,12 @@ PASSED: Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( is_true<true>::value == true ) with expansion: true == true -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( true == is_true<true>::value ) with expansion: true == true @@ -432,14 +404,12 @@ with expansion: Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( is_true<false>::value == false ) with expansion: false == false -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( false == is_true<false>::value ) with expansion: false == false @@ -451,8 +421,7 @@ with expansion: Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( !is_true<false>::value ) with expansion: true @@ -464,8 +433,7 @@ with expansion: Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( !!is_true<true>::value ) with expansion: true @@ -477,14 +445,12 @@ with expansion: Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( is_true<true>::value ) with expansion: true -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( is_true<false>::value ) with expansion: !false @@ -495,8 +461,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 101 @@ -507,8 +472,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 102 @@ -519,8 +483,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 103 @@ -531,8 +494,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 104 @@ -543,8 +505,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 105 @@ -555,8 +516,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 106 @@ -567,8 +527,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 107 @@ -579,8 +538,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 108 @@ -591,8 +549,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 109 @@ -603,8 +560,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 1 < 110 @@ -615,8 +571,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 101 @@ -627,8 +582,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 102 @@ -639,8 +593,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 103 @@ -651,8 +604,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 104 @@ -663,8 +615,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 105 @@ -675,8 +626,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 106 @@ -687,8 +637,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 107 @@ -699,8 +648,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 108 @@ -711,8 +659,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 109 @@ -723,8 +670,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 2 < 110 @@ -735,8 +681,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 101 @@ -747,8 +692,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 102 @@ -759,8 +703,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 103 @@ -771,8 +714,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 104 @@ -783,8 +725,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 105 @@ -795,8 +736,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 106 @@ -807,8 +747,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 107 @@ -819,8 +758,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 108 @@ -831,8 +769,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 109 @@ -843,8 +780,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 3 < 110 @@ -855,8 +791,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 101 @@ -867,8 +802,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 102 @@ -879,8 +813,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 103 @@ -891,8 +824,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 104 @@ -903,8 +835,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 105 @@ -915,8 +846,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 106 @@ -927,8 +857,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 107 @@ -939,8 +868,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 108 @@ -951,8 +879,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 109 @@ -963,8 +890,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 4 < 110 @@ -975,8 +901,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 101 @@ -987,8 +912,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 102 @@ -999,8 +923,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 103 @@ -1011,8 +934,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 104 @@ -1023,8 +945,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 105 @@ -1035,8 +956,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 106 @@ -1047,8 +967,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 107 @@ -1059,8 +978,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 108 @@ -1071,8 +989,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 109 @@ -1083,8 +1000,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 5 < 110 @@ -1095,8 +1011,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 101 @@ -1107,8 +1022,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 102 @@ -1119,8 +1033,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 103 @@ -1131,8 +1044,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 104 @@ -1143,8 +1055,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 105 @@ -1155,8 +1066,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 106 @@ -1167,8 +1077,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 107 @@ -1179,8 +1088,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 108 @@ -1191,8 +1099,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 109 @@ -1203,8 +1110,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 6 < 110 @@ -1215,8 +1121,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 101 @@ -1227,8 +1132,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 102 @@ -1239,8 +1143,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 103 @@ -1251,8 +1154,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 104 @@ -1263,8 +1165,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 105 @@ -1275,8 +1176,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 106 @@ -1287,8 +1187,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 107 @@ -1299,8 +1198,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 108 @@ -1311,8 +1209,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 109 @@ -1323,8 +1220,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 7 < 110 @@ -1335,8 +1231,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 101 @@ -1347,8 +1242,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 102 @@ -1359,8 +1253,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 103 @@ -1371,8 +1264,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 104 @@ -1383,8 +1275,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 105 @@ -1395,8 +1286,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 106 @@ -1407,8 +1297,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 107 @@ -1419,8 +1308,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 108 @@ -1431,8 +1319,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 109 @@ -1443,8 +1330,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 8 < 110 @@ -1455,8 +1341,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 101 @@ -1467,8 +1352,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 102 @@ -1479,8 +1363,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 103 @@ -1491,8 +1374,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 104 @@ -1503,8 +1385,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 105 @@ -1515,8 +1396,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 106 @@ -1527,8 +1407,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 107 @@ -1539,8 +1418,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 108 @@ -1551,8 +1429,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 109 @@ -1563,8 +1440,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 9 < 110 @@ -1575,8 +1451,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 101 @@ -1587,8 +1462,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 102 @@ -1599,8 +1473,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 103 @@ -1611,8 +1484,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 104 @@ -1623,8 +1495,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 105 @@ -1635,8 +1506,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 106 @@ -1647,8 +1517,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 107 @@ -1659,8 +1528,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 108 @@ -1671,8 +1539,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 109 @@ -1683,8 +1550,7 @@ with expansion: Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: CHECK( x < y ) with expansion: 10 < 110 @@ -1706,8 +1572,7 @@ A METHOD_AS_TEST_CASE based test run that succeeds Class.tests.cpp:<line number> ............................................................................... -Class.tests.cpp:<line number>: -PASSED: +Class.tests.cpp:<line number>: PASSED: REQUIRE( s == "hello" ) with expansion: "hello" == "hello" @@ -1729,8 +1594,7 @@ A TEST_CASE_METHOD based test run that succeeds Class.tests.cpp:<line number> ............................................................................... -Class.tests.cpp:<line number>: -PASSED: +Class.tests.cpp:<line number>: PASSED: REQUIRE( m_a == 1 ) with expansion: 1 == 1 @@ -1741,38 +1605,32 @@ A comparison that uses literals instead of the normal constructor Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == 1.23_a ) with expansion: 1.23 == Approx( 1.23 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d != 1.22_a ) with expansion: 1.23 != Approx( 1.22 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( -d == -1.23_a ) with expansion: -1.23 == Approx( -1.23 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == 1.2_a .epsilon(.1) ) with expansion: 1.23 == Approx( 1.2 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d != 1.2_a .epsilon(.001) ) with expansion: 1.23 != Approx( 1.2 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == 1_a .epsilon(.3) ) with expansion: 1.23 == Approx( 1.0 ) @@ -1785,8 +1643,7 @@ A couple of nested sections followed by a failure Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: that's not flying - that's failing in style @@ -1822,38 +1679,32 @@ Absolute margin Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 104.0 != Approx(100.0) ) with expansion: 104.0 != Approx( 100.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 104.0 == Approx(100.0).margin(5) ) with expansion: 104.0 == Approx( 100.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 104.0 == Approx(100.0).margin(4) ) with expansion: 104.0 == Approx( 100.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 104.0 != Approx(100.0).margin(3) ) with expansion: 104.0 != Approx( 100.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 100.3 != Approx(100.0) ) with expansion: 100.3 != Approx( 100.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 100.3 == Approx(100.0).margin(0.5) ) with expansion: 100.3 == Approx( 100.0 ) @@ -1873,14 +1724,12 @@ An expression with side-effects should only be evaluated once Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( i++ == 7 ) with expansion: 7 == 7 -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( i++ == 8 ) with expansion: 8 == 8 @@ -1891,8 +1740,7 @@ An unchecked exception reports the line of the last assertion Exception.tests.cpp:<line number> ............................................................................... -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: CHECK( 1 == 1 ) Exception.tests.cpp:<line number>: FAILED: @@ -1906,8 +1754,7 @@ Anonymous test case 1 VariadicMacros.tests.cpp:<line number> ............................................................................... -VariadicMacros.tests.cpp:<line number>: -PASSED: +VariadicMacros.tests.cpp:<line number>: PASSED: with message: anonymous test case @@ -1917,32 +1764,25 @@ Approx setters validate their arguments Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( Approx(0).margin(0) ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( Approx(0).margin(1234656) ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_AS( Approx(0).margin(-2), std::domain_error ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( Approx(0).epsilon(0) ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( Approx(0).epsilon(1) ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_AS( Approx(0).epsilon(-0.001), std::domain_error ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_AS( Approx(0).epsilon(1.0001), std::domain_error ) ------------------------------------------------------------------------------- @@ -1951,32 +1791,27 @@ Approx with exactly-representable margin Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: CHECK( 0.25f == Approx(0.0f).margin(0.25f) ) with expansion: 0.25f == Approx( 0.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: CHECK( 0.0f == Approx(0.25f).margin(0.25f) ) with expansion: 0.0f == Approx( 0.25 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: CHECK( 0.5f == Approx(0.25f).margin(0.25f) ) with expansion: 0.5f == Approx( 0.25 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: CHECK( 245.0f == Approx(245.25f).margin(0.25f) ) with expansion: 245.0f == Approx( 245.25 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: CHECK( 245.5f == Approx(245.25f).margin(0.25f) ) with expansion: 245.5f == Approx( 245.25 ) @@ -1987,14 +1822,12 @@ Approximate PI Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) ) with expansion: 3.1428571429 == Approx( 3.141 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) ) with expansion: 3.1428571429 != Approx( 3.141 ) @@ -2005,14 +1838,12 @@ Approximate comparisons with different epsilons Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d != Approx( 1.231 ) ) with expansion: 1.23 != Approx( 1.231 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) ) with expansion: 1.23 == Approx( 1.231 ) @@ -2023,14 +1854,12 @@ Approximate comparisons with floats Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 1.23f == Approx( 1.23f ) ) with expansion: 1.23f == Approx( 1.2300000191 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 0.0f == Approx( 0.0f ) ) with expansion: 0.0f == Approx( 0.0 ) @@ -2041,14 +1870,12 @@ Approximate comparisons with ints Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 1 == Approx( 1 ) ) with expansion: 1 == Approx( 1.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 0 == Approx( 0 ) ) with expansion: 0 == Approx( 0.0 ) @@ -2059,32 +1886,27 @@ Approximate comparisons with mixed numeric types Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 1.0f == Approx( 1 ) ) with expansion: 1.0f == Approx( 1.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 0 == Approx( dZero) ) with expansion: 0 == Approx( 0.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 0 == Approx( dSmall ).margin( 0.001 ) ) with expansion: 0 == Approx( 0.00001 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 1.234f == Approx( dMedium ) ) with expansion: 1.234f == Approx( 1.234 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( dMedium == Approx( 1.234f ) ) with expansion: 1.234 == Approx( 1.2339999676 ) @@ -2096,14 +1918,12 @@ Arbitrary predicate matcher Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1, Predicate<int>(alwaysTrue, "always true") ) with expansion: 1 matches predicate: "always true" -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1, !Predicate<int>(alwaysFalse, "always false") ) with expansion: 1 not matches predicate: "always false" @@ -2115,14 +1935,12 @@ Arbitrary predicate matcher Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( "Hello olleH", Predicate<std::string>( [] (std::string const& str) -> bool { return str.front() == str.back(); }, "First and last character should be equal") ) with expansion: "Hello olleH" matches predicate: "First and last character should be equal" -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( "This wouldn't pass", !Predicate<std::string>( [] (std::string const& str) -> bool { return str.front() == str.back(); } ) ) with expansion: "This wouldn't pass" not matches undescribed predicate @@ -2133,8 +1951,7 @@ Assertions then sections Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( true ) ------------------------------------------------------------------------------- @@ -2144,8 +1961,7 @@ Assertions then sections Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( true ) ------------------------------------------------------------------------------- @@ -2156,8 +1972,7 @@ Assertions then sections Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( true ) ------------------------------------------------------------------------------- @@ -2166,8 +1981,7 @@ Assertions then sections Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( true ) ------------------------------------------------------------------------------- @@ -2177,8 +1991,7 @@ Assertions then sections Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( true ) ------------------------------------------------------------------------------- @@ -2189,8 +2002,7 @@ Assertions then sections Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( true ) ------------------------------------------------------------------------------- @@ -2199,20 +2011,17 @@ Assorted miscellaneous tests Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( INFINITY == Approx(INFINITY) ) with expansion: inff == Approx( inf ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( NAN != Approx(NAN) ) with expansion: nanf != Approx( nan ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( NAN == Approx(NAN) ) with expansion: !(nanf == Approx( nan )) @@ -2223,14 +2032,12 @@ Bitfields can be captured (#1027) Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( y.v == 0 ) with expansion: 0 == 0 -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( 0 == y.v ) with expansion: 0 == 0 @@ -2242,8 +2049,7 @@ Capture and info messages ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( true ) with message: i := 2 @@ -2255,8 +2061,7 @@ Capture and info messages ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( true ) with message: 3 @@ -2268,26 +2073,22 @@ Character pretty printing ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: CHECK( tab == '\t' ) with expansion: '\t' == '\t' -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: CHECK( newline == '\n' ) with expansion: '\n' == '\n' -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: CHECK( carr_return == '\r' ) with expansion: '\r' == '\r' -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: CHECK( form_feed == '\f' ) with expansion: '\f' == '\f' @@ -2299,32 +2100,27 @@ Character pretty printing ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: CHECK( space == ' ' ) with expansion: ' ' == ' ' -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( c == chars[i] ) with expansion: 'a' == 'a' -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( c == chars[i] ) with expansion: 'z' == 'z' -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( c == chars[i] ) with expansion: 'A' == 'A' -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( c == chars[i] ) with expansion: 'Z' == 'Z' @@ -2336,32 +2132,27 @@ Character pretty printing ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: CHECK( null_terminator == '\0' ) with expansion: 0 == 0 -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( c == i ) with expansion: 2 == 2 -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( c == i ) with expansion: 3 == 3 -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( c == i ) with expansion: 4 == 4 -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( c == i ) with expansion: 5 == 5 @@ -2372,64 +2163,52 @@ Commas in various macros are allowed Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE_THROWS( std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} ) -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK_THROWS( std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} ) -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} ) -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK_NOTHROW( std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} ) -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( std::vector<int>{1, 2} == std::vector<int>{1, 2} ) with expansion: { 1, 2 } == { 1, 2 } -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK( std::vector<int>{1, 2} == std::vector<int>{1, 2} ) with expansion: { 1, 2 } == { 1, 2 } -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( std::vector<int>{1, 2} == std::vector<int>{1, 2, 3} ) with expansion: !({ 1, 2 } == { 1, 2, 3 }) -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK_FALSE( std::vector<int>{1, 2} == std::vector<int>{1, 2, 3} ) with expansion: !({ 1, 2 } == { 1, 2, 3 }) -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK_NOFAIL( std::vector<int>{1, 2} == std::vector<int>{1, 2} ) with expansion: { 1, 2 } == { 1, 2 } -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECKED_IF( std::vector<int>{1, 2} == std::vector<int>{1, 2} ) with expansion: { 1, 2 } == { 1, 2 } -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( true ) -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECKED_ELSE( std::vector<int>{1, 2} == std::vector<int>{1, 2} ) with expansion: { 1, 2 } == { 1, 2 } @@ -2440,14 +2219,12 @@ Comparing function pointers Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( a ) with expansion: 0x<hex digits> -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( a == &foo ) with expansion: 0x<hex digits> == 0x<hex digits> @@ -2458,74 +2235,62 @@ Comparison with explicitly convertible types Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( td == Approx(10.0) ) with expansion: StrongDoubleTypedef(10) == Approx( 10.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx(10.0) == td ) with expansion: Approx( 10.0 ) == StrongDoubleTypedef(10) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( td != Approx(11.0) ) with expansion: StrongDoubleTypedef(10) != Approx( 11.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx(11.0) != td ) with expansion: Approx( 11.0 ) != StrongDoubleTypedef(10) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( td <= Approx(10.0) ) with expansion: StrongDoubleTypedef(10) <= Approx( 10.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( td <= Approx(11.0) ) with expansion: StrongDoubleTypedef(10) <= Approx( 11.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx(10.0) <= td ) with expansion: Approx( 10.0 ) <= StrongDoubleTypedef(10) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx(9.0) <= td ) with expansion: Approx( 9.0 ) <= StrongDoubleTypedef(10) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( td >= Approx(9.0) ) with expansion: StrongDoubleTypedef(10) >= Approx( 9.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( td >= Approx(td) ) with expansion: StrongDoubleTypedef(10) >= Approx( 10.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx(td) >= td ) with expansion: Approx( 10.0 ) >= StrongDoubleTypedef(10) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx(11.0) >= td ) with expansion: Approx( 11.0 ) >= StrongDoubleTypedef(10) @@ -2536,8 +2301,7 @@ Comparisons between ints where one side is computed Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: CHECK( 54 == 6*9 ) with expansion: 54 == 54 @@ -2549,38 +2313,32 @@ behaviour Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: CHECK( ( -1 > 2u ) ) with expansion: true -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: CHECK( -1 > 2u ) with expansion: -1 > 2 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: CHECK( ( 2u < -1 ) ) with expansion: true -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: CHECK( 2u < -1 ) with expansion: 2 < -1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: CHECK( ( minInt > 2u ) ) with expansion: true -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: CHECK( minInt > 2u ) with expansion: -2147483648 > 2 @@ -2591,80 +2349,67 @@ Comparisons with int literals don't warn when mixing signed/ unsigned Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( i == 1 ) with expansion: 1 == 1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( ui == 2 ) with expansion: 2 == 2 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( l == 3 ) with expansion: 3 == 3 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( ul == 4 ) with expansion: 4 == 4 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( c == 5 ) with expansion: 5 == 5 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( uc == 6 ) with expansion: 6 == 6 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( 1 == i ) with expansion: 1 == 1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( 2 == ui ) with expansion: 2 == 2 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( 3 == l ) with expansion: 3 == 3 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( 4 == ul ) with expansion: 4 == 4 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( 5 == c ) with expansion: 5 == 5 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( 6 == uc ) with expansion: 6 == 6 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( (std::numeric_limits<uint32_t>::max)() > ul ) with expansion: 4294967295 (0x<hex digits>) > 4 @@ -2724,14 +2469,12 @@ Default scale is invisible to comparison Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 101.000001 != Approx(100).epsilon(0.01) ) with expansion: 101.000001 != Approx( 100.0 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( std::pow(10, -5) != Approx(std::pow(10, -7)) ) with expansion: 0.00001 != Approx( 0.0000001 ) @@ -2759,8 +2502,7 @@ Epsilon only applies to Approx's value Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( 101.01 != Approx(100).epsilon(0.01) ) with expansion: 101.01 != Approx( 100.0 ) @@ -2842,44 +2584,37 @@ Equality checks that should succeed Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven == 7 ) with expansion: 7 == 7 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.float_nine_point_one == Approx( 9.1f ) ) with expansion: 9.1f == Approx( 9.1000003815 ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.double_pi == Approx( 3.1415926535 ) ) with expansion: 3.1415926535 == Approx( 3.1415926535 ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello == "hello" ) with expansion: "hello" == "hello" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( "hello" == data.str_hello ) with expansion: "hello" == "hello" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello.size() == 5 ) with expansion: 5 == 5 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( x == Approx( 1.3 ) ) with expansion: 1.3 == Approx( 1.3 ) @@ -2890,15 +2625,13 @@ Equals Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), Equals("this string contains 'abc' as a substring") ) with expansion: "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring" -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), Equals("this string contains 'ABC' as a substring", Catch::CaseSensitive::No) ) with expansion: "this string contains 'abc' as a substring" equals: "this string contains @@ -2928,22 +2661,19 @@ Exception as a value (e.g. in REQUIRE_THROWS_MATCHES) can be stringified ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(WhatException{}) == "This exception has overriden what() method" ) with expansion: "This exception has overriden what() method" == "This exception has overriden what() method" -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(OperatorException{}) == "OperatorException" ) with expansion: "OperatorException" == "OperatorException" -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(StringMakerException{}) == "StringMakerException" ) with expansion: "StringMakerException" @@ -3005,14 +2735,12 @@ Exception matchers that succeed Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THROWS_MATCHES( throws(1), SpecialException, ExceptionMatcher{1} ) with expansion: SpecialException::what special exception has value of 1 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_MATCHES( throws(2), SpecialException, ExceptionMatcher{2} ) with expansion: SpecialException::what special exception has value of 2 @@ -3024,8 +2752,7 @@ Exception messages can be tested for Exception.tests.cpp:<line number> ............................................................................... -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ) with expansion: "expected exception" equals: "expected exception" @@ -3037,8 +2764,7 @@ Exception messages can be tested for Exception.tests.cpp:<line number> ............................................................................... -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_WITH( thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) ) with expansion: "expected exception" equals: "expected exception" (case insensitive) @@ -3050,26 +2776,22 @@ Exception messages can be tested for Exception.tests.cpp:<line number> ............................................................................... -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) ) with expansion: "expected exception" starts with: "expected" -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) ) with expansion: "expected exception" ends with: "exception" -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_WITH( thisThrows(), Contains( "except" ) ) with expansion: "expected exception" contains: "except" -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) ) with expansion: "expected exception" contains: "except" (case insensitive) @@ -3122,8 +2844,7 @@ Message.tests.cpp:<line number>: FAILED: explicitly with message: This is a failure -Message.tests.cpp:<line number>: -warning: +Message.tests.cpp:<line number>: warning: This message appears in the output ------------------------------------------------------------------------------- @@ -3132,32 +2853,27 @@ Factorials are computed Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( Factorial(0) == 1 ) with expansion: 1 == 1 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( Factorial(1) == 1 ) with expansion: 1 == 1 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( Factorial(2) == 2 ) with expansion: 2 == 2 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( Factorial(3) == 6 ) with expansion: 6 == 6 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( Factorial(10) == 3628800 ) with expansion: 3628800 (0x<hex digits>) == 3628800 (0x<hex digits>) @@ -3169,56 +2885,47 @@ Floating point matchers: double Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1., WithinAbs(1., 0) ) with expansion: 1.0 is within 0.0 of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 0., WithinAbs(1., 1) ) with expansion: 0.0 is within 1.0 of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 0., !WithinAbs(1., 0.99) ) with expansion: 0.0 not is within 0.99 of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 0., !WithinAbs(1., 0.99) ) with expansion: 0.0 not is within 0.99 of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( NAN, !WithinAbs(NAN, 0) ) with expansion: nanf not is within 0.0 of nan -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 11., !WithinAbs(10., 0.5) ) with expansion: 11.0 not is within 0.5 of 10.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 10., !WithinAbs(11., 0.5) ) with expansion: 10.0 not is within 0.5 of 11.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( -10., WithinAbs(-10., 0.5) ) with expansion: -10.0 is within 0.5 of -10.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( -10., WithinAbs(-9.6, 0.5) ) with expansion: -10.0 is within 0.5 of -9.6 @@ -3230,44 +2937,37 @@ Floating point matchers: double Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1., WithinULP(1., 0) ) with expansion: 1.0 is within 0 ULPs of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( nextafter(1., 2.), WithinULP(1., 1) ) with expansion: 1.0 is within 1 ULPs of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( nextafter(1., 0.), WithinULP(1., 1) ) with expansion: 1.0 is within 1 ULPs of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( nextafter(1., 2.), !WithinULP(1., 0) ) with expansion: 1.0 not is within 0 ULPs of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1., WithinULP(1., 0) ) with expansion: 1.0 is within 0 ULPs of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( -0., WithinULP(0., 0) ) with expansion: -0.0 is within 0 ULPs of 0.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( NAN, !WithinULP(NAN, 123) ) with expansion: nanf not is within 123 ULPs of nanf @@ -3279,20 +2979,17 @@ Floating point matchers: double Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1., WithinAbs(1., 0.5) || WithinULP(2., 1) ) with expansion: 1.0 ( is within 0.5 of 1.0 or is within 1 ULPs of 2.0 ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1., WithinAbs(2., 0.5) || WithinULP(1., 0) ) with expansion: 1.0 ( is within 0.5 of 2.0 or is within 0 ULPs of 1.0 ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( NAN, !(WithinAbs(NAN, 100) || WithinULP(NAN, 123)) ) with expansion: nanf not ( is within 100.0 of nan or is within 123 ULPs of nanf ) @@ -3304,20 +3001,16 @@ Floating point matchers: double Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( WithinAbs(1., 0.) ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_AS( WithinAbs(1., -1.), std::domain_error ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( WithinULP(1., 0) ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_AS( WithinULP(1., -1), std::domain_error ) ------------------------------------------------------------------------------- @@ -3327,62 +3020,52 @@ Floating point matchers: float Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1.f, WithinAbs(1.f, 0) ) with expansion: 1.0f is within 0.0 of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 0.f, WithinAbs(1.f, 1) ) with expansion: 0.0f is within 1.0 of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 0.f, !WithinAbs(1.f, 0.99f) ) with expansion: 0.0f not is within 0.9900000095 of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 0.f, !WithinAbs(1.f, 0.99f) ) with expansion: 0.0f not is within 0.9900000095 of 1.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 0.f, WithinAbs(-0.f, 0) ) with expansion: 0.0f is within 0.0 of -0.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( NAN, !WithinAbs(NAN, 0) ) with expansion: nanf not is within 0.0 of nan -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 11.f, !WithinAbs(10.f, 0.5f) ) with expansion: 11.0f not is within 0.5 of 10.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 10.f, !WithinAbs(11.f, 0.5f) ) with expansion: 10.0f not is within 0.5 of 11.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( -10.f, WithinAbs(-10.f, 0.5f) ) with expansion: -10.0f is within 0.5 of -10.0 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( -10.f, WithinAbs(-9.6f, 0.5f) ) with expansion: -10.0f is within 0.5 of -9.6000003815 @@ -3394,44 +3077,37 @@ Floating point matchers: float Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1.f, WithinULP(1.f, 0) ) with expansion: 1.0f is within 0 ULPs of 1.0f -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( nextafter(1.f, 2.f), WithinULP(1.f, 1) ) with expansion: 1.0f is within 1 ULPs of 1.0f -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( nextafter(1.f, 0.f), WithinULP(1.f, 1) ) with expansion: 1.0f is within 1 ULPs of 1.0f -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( nextafter(1.f, 2.f), !WithinULP(1.f, 0) ) with expansion: 1.0f not is within 0 ULPs of 1.0f -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1.f, WithinULP(1.f, 0) ) with expansion: 1.0f is within 0 ULPs of 1.0f -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( -0.f, WithinULP(0.f, 0) ) with expansion: -0.0f is within 0 ULPs of 0.0f -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( NAN, !WithinULP(NAN, 123) ) with expansion: nanf not is within 123 ULPs of nanf @@ -3443,20 +3119,17 @@ Floating point matchers: float Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1.f, WithinAbs(1.f, 0.5) || WithinULP(1.f, 1) ) with expansion: 1.0f ( is within 0.5 of 1.0 or is within 1 ULPs of 1.0f ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( 1.f, WithinAbs(2.f, 0.5) || WithinULP(1.f, 0) ) with expansion: 1.0f ( is within 0.5 of 2.0 or is within 0 ULPs of 1.0f ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( NAN, !(WithinAbs(NAN, 100) || WithinULP(NAN, 123)) ) with expansion: nanf not ( is within 100.0 of nan or is within 123 ULPs of nanf ) @@ -3468,20 +3141,16 @@ Floating point matchers: float Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( WithinAbs(1.f, 0.f) ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_AS( WithinAbs(1.f, -1.f), std::domain_error ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( WithinULP(1.f, 0) ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_AS( WithinULP(1.f, -1), std::domain_error ) ------------------------------------------------------------------------------- @@ -3491,8 +3160,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "a" j := 8 @@ -3504,8 +3172,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "a" j := 9 @@ -3517,8 +3184,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "a" j := 10 @@ -3530,8 +3196,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "a" j := 2 @@ -3543,8 +3208,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "a" j := 3.141 @@ -3556,8 +3220,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "a" j := 1.379 @@ -3569,8 +3232,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "b" j := 8 @@ -3582,8 +3244,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "b" j := 9 @@ -3595,8 +3256,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "b" j := 10 @@ -3608,8 +3268,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "b" j := 2 @@ -3621,8 +3280,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "b" j := 3.141 @@ -3634,8 +3292,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "b" j := 1.379 @@ -3647,8 +3304,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "c" j := 8 @@ -3660,8 +3316,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "c" j := 9 @@ -3673,8 +3328,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "c" j := 10 @@ -3686,8 +3340,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "c" j := 2 @@ -3699,8 +3352,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "c" j := 3.141 @@ -3712,8 +3364,7 @@ Generators Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: with messages: i := "c" j := 1.379 @@ -3725,20 +3376,17 @@ Generators impl GeneratorsImpl.tests.cpp:<line number> ............................................................................... -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen.size() == 2 ) with expansion: 2 == 2 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[0] == 1 ) with expansion: 1 == 1 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[1] == 2 ) with expansion: 2 == 2 @@ -3750,32 +3398,27 @@ Generators impl GeneratorsImpl.tests.cpp:<line number> ............................................................................... -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen.size() == 4 ) with expansion: 4 == 4 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[0] == 3 ) with expansion: 3 == 3 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[1] == 1 ) with expansion: 1 == 1 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[2] == 4 ) with expansion: 4 == 4 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[3] == 1 ) with expansion: 1 == 1 @@ -3787,32 +3430,27 @@ Generators impl GeneratorsImpl.tests.cpp:<line number> ............................................................................... -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen.size() == 4 ) with expansion: 4 == 4 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[0] == 1 ) with expansion: 1 == 1 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[1] == 2 ) with expansion: 2 == 2 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[2] == 9 ) with expansion: 9 == 9 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[3] == 7 ) with expansion: 7 == 7 @@ -3824,20 +3462,17 @@ Generators impl GeneratorsImpl.tests.cpp:<line number> ............................................................................... -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen.size() == 2 ) with expansion: 2 == 2 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[0] == 3 ) with expansion: 3 == 3 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[1] == 1 ) with expansion: 1 == 1 @@ -3849,20 +3484,17 @@ Generators impl GeneratorsImpl.tests.cpp:<line number> ............................................................................... -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen.size() == 2 ) with expansion: 2 == 2 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[0] == 3 ) with expansion: 3 == 3 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( gen[1] == 1 ) with expansion: 1 == 1 @@ -3874,32 +3506,27 @@ Generators impl GeneratorsImpl.tests.cpp:<line number> ............................................................................... -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( base->size() == 4 ) with expansion: 4 == 4 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: REQUIRE( typed ) with expansion: 0x<hex digits> -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( typed->size() == 4 ) with expansion: 4 == 4 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( (*typed)[0] == 7 ) with expansion: 7 == 7 -GeneratorsImpl.tests.cpp:<line number>: -PASSED: +GeneratorsImpl.tests.cpp:<line number>: PASSED: CHECK( (*typed)[3] == 11 ) with expansion: 11 == 11 @@ -3910,26 +3537,22 @@ Greater-than inequalities with different epsilons Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d >= Approx( 1.22 ) ) with expansion: 1.23 >= Approx( 1.22 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d >= Approx( 1.23 ) ) with expansion: 1.23 >= Approx( 1.23 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( d >= Approx( 1.24 ) ) with expansion: !(1.23 >= Approx( 1.24 )) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d >= Approx( 1.24 ).epsilon(0.1) ) with expansion: 1.23 >= Approx( 1.24 ) @@ -3940,8 +3563,7 @@ INFO and WARN do not abort tests Message.tests.cpp:<line number> ............................................................................... -Message.tests.cpp:<line number>: -warning: +Message.tests.cpp:<line number>: warning: this is a message this is a warning @@ -3968,8 +3590,7 @@ INFO gets logged on failure, even if captured before successful assertions Message.tests.cpp:<line number> ............................................................................... -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: CHECK( a == 2 ) with expansion: 2 == 2 @@ -3993,8 +3614,7 @@ with messages: this message should be logged and this, but later -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: CHECK( a == 2 ) with expansion: 2 == 2 @@ -4010,8 +3630,7 @@ INFO is reset for each loop Message.tests.cpp:<line number> ............................................................................... -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 0 < 10 @@ -4019,8 +3638,7 @@ with messages: current counter 0 i := 0 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 1 < 10 @@ -4028,8 +3646,7 @@ with messages: current counter 1 i := 1 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 2 < 10 @@ -4037,8 +3654,7 @@ with messages: current counter 2 i := 2 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 3 < 10 @@ -4046,8 +3662,7 @@ with messages: current counter 3 i := 3 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 4 < 10 @@ -4055,8 +3670,7 @@ with messages: current counter 4 i := 4 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 5 < 10 @@ -4064,8 +3678,7 @@ with messages: current counter 5 i := 5 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 6 < 10 @@ -4073,8 +3686,7 @@ with messages: current counter 6 i := 6 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 7 < 10 @@ -4082,8 +3694,7 @@ with messages: current counter 7 i := 7 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 8 < 10 @@ -4091,8 +3702,7 @@ with messages: current counter 8 i := 8 -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: REQUIRE( i < 10 ) with expansion: 9 < 10 @@ -4145,68 +3755,57 @@ Inequality checks that should succeed Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven != 6 ) with expansion: 7 != 6 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven != 8 ) with expansion: 7 != 8 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.float_nine_point_one != Approx( 9.11f ) ) with expansion: 9.1f != Approx( 9.1099996567 ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.float_nine_point_one != Approx( 9.0f ) ) with expansion: 9.1f != Approx( 9.0 ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.float_nine_point_one != Approx( 1 ) ) with expansion: 9.1f != Approx( 1.0 ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.float_nine_point_one != Approx( 0 ) ) with expansion: 9.1f != Approx( 0.0 ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.double_pi != Approx( 3.1415 ) ) with expansion: 3.1415926535 != Approx( 3.1415 ) -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello != "goodbye" ) with expansion: "hello" != "goodbye" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello != "hell" ) with expansion: "hello" != "hell" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello != "hello1" ) with expansion: "hello" != "hello1" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello.size() != 6 ) with expansion: 5 != 6 @@ -4217,26 +3816,22 @@ Less-than inequalities with different epsilons Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d <= Approx( 1.24 ) ) with expansion: 1.23 <= Approx( 1.24 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d <= Approx( 1.23 ) ) with expansion: 1.23 <= Approx( 1.23 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( d <= Approx( 1.22 ) ) with expansion: !(1.23 <= Approx( 1.22 )) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d <= Approx( 1.22 ).epsilon(0.1) ) with expansion: 1.23 <= Approx( 1.22 ) @@ -4247,8 +3842,7 @@ ManuallyRegistered Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: was called @@ -4258,8 +3852,7 @@ Matchers can be (AllOf) composed with the && operator Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), Contains("string") && Contains("abc") && Contains("substring") && Contains("contains") ) with expansion: "this string contains 'abc' as a substring" ( contains: "string" and @@ -4271,15 +3864,13 @@ Matchers can be (AnyOf) composed with the || operator Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), Contains("string") || Contains("different") || Contains("random") ) with expansion: "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" ) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching2(), Contains("string") || Contains("different") || Contains("random") ) with expansion: "some completely different text that contains one common word" ( contains: @@ -4291,8 +3882,7 @@ Matchers can be composed with both && and || Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), (Contains("string") || Contains("different")) && Contains("substring") ) with expansion: "this string contains 'abc' as a substring" ( ( contains: "string" or @@ -4316,8 +3906,7 @@ Matchers can be negated (Not) with the ! operator Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), !Contains("different") ) with expansion: "this string contains 'abc' as a substring" not contains: "different" @@ -4339,8 +3928,7 @@ Mismatching exception messages failing the test Exception.tests.cpp:<line number> ............................................................................... -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ) with expansion: "expected exception" equals: "expected exception" @@ -4356,8 +3944,7 @@ Nice descriptive name Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -warning: +Misc.tests.cpp:<line number>: warning: This one ran @@ -4379,24 +3966,35 @@ Objects that evaluated in boolean contexts can be checked Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK( True ) with expansion: {?} -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK( !False ) with expansion: true -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK_FALSE( False ) with expansion: !{?} +------------------------------------------------------------------------------- +Optionally static assertions +------------------------------------------------------------------------------- +Compilation.tests.cpp:<line number> +............................................................................... + +Compilation.tests.cpp:<line number>: PASSED: +with message: + std::is_void<void>::value + +Compilation.tests.cpp:<line number>: PASSED: +with message: + !(std::is_void<int>::value) + ------------------------------------------------------------------------------- Ordering comparison checks that should fail ------------------------------------------------------------------------------- @@ -4504,104 +4102,87 @@ Ordering comparison checks that should succeed Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven < 8 ) with expansion: 7 < 8 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven > 6 ) with expansion: 7 > 6 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven > 0 ) with expansion: 7 > 0 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven > -1 ) with expansion: 7 > -1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven >= 7 ) with expansion: 7 >= 7 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven >= 6 ) with expansion: 7 >= 6 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven <= 7 ) with expansion: 7 <= 7 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.int_seven <= 8 ) with expansion: 7 <= 8 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.float_nine_point_one > 9 ) with expansion: 9.1f > 9 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.float_nine_point_one < 10 ) with expansion: 9.1f < 10 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.float_nine_point_one < 9.2 ) with expansion: 9.1f < 9.2 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello <= "hello" ) with expansion: "hello" <= "hello" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello >= "hello" ) with expansion: "hello" >= "hello" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello < "hellp" ) with expansion: "hello" < "hellp" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello < "zebra" ) with expansion: "hello" < "zebra" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello > "hellm" ) with expansion: "hello" > "hellm" -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( data.str_hello > "a" ) with expansion: "hello" > "a" @@ -4635,20 +4216,17 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false @@ -4660,20 +4238,17 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches(tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false @@ -4685,20 +4260,17 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false @@ -4710,20 +4282,17 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true @@ -4735,20 +4304,17 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true @@ -4760,26 +4326,22 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false @@ -4791,38 +4353,32 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( parseTestSpec( "*a" ).matches( tcA ) == true ) with expansion: true == true @@ -4834,38 +4390,32 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( parseTestSpec( "a*" ).matches( tcA ) == true ) with expansion: true == true @@ -4877,38 +4427,32 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( parseTestSpec( "*a*" ).matches( tcA ) == true ) with expansion: true == true @@ -4920,20 +4464,17 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false @@ -4945,20 +4486,17 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false @@ -4970,20 +4508,17 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false @@ -4995,32 +4530,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == true ) with expansion: true == true @@ -5032,32 +4562,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == true ) with expansion: true == true @@ -5069,26 +4594,22 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false @@ -5100,26 +4621,22 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true @@ -5131,26 +4648,22 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true @@ -5162,26 +4675,22 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true @@ -5193,32 +4702,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false @@ -5230,26 +4734,22 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true @@ -5261,26 +4761,22 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false @@ -5292,32 +4788,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == true ) with expansion: true == true @@ -5329,32 +4820,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == true ) with expansion: true == true @@ -5366,32 +4852,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == true ) with expansion: true == true @@ -5403,32 +4884,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false @@ -5440,32 +4916,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false @@ -5477,32 +4948,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false @@ -5514,32 +4980,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false @@ -5551,32 +5012,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false @@ -5588,32 +5044,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == false ) with expansion: false == false @@ -5625,32 +5076,27 @@ Parse test names and tags CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.hasFilters() == true ) with expansion: true == true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcA ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcB ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcC ) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( spec.matches( tcD ) == true ) with expansion: true == true @@ -5661,54 +5107,57 @@ Pointers can be compared to null Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( p == 0 ) with expansion: 0 == 0 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( p == pNULL ) with expansion: 0 == 0 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( p != 0 ) with expansion: 0x<hex digits> != 0 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( cp != 0 ) with expansion: 0x<hex digits> != 0 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( cpc != 0 ) with expansion: 0x<hex digits> != 0 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( returnsNull() == 0 ) with expansion: {null string} == 0 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( returnsConstNull() == 0 ) with expansion: {null string} == 0 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( 0 != p ) with expansion: 0 != 0x<hex digits> +------------------------------------------------------------------------------- +Predicate matcher can accept const char* +------------------------------------------------------------------------------- +Matchers.tests.cpp:<line number> +............................................................................... + +Matchers.tests.cpp:<line number>: PASSED: + REQUIRE_THAT( "foo", Predicate<const char*>([] (const char* const&) { return true; }) ) +with expansion: + "foo" matches undescribed predicate + ------------------------------------------------------------------------------- Process can be configured on command line empty args don't cause a crash @@ -5716,14 +5165,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( result ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.processName == "" ) with expansion: "" == "" @@ -5735,44 +5182,37 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( result ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.processName == "test" ) with expansion: "test" == "test" -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.shouldDebugBreak == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.abortAfter == -1 ) with expansion: -1 == -1 -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.noThrow == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.reporterName == "console" ) with expansion: "console" == "console" -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK_FALSE( cfg.hasTestFilters() ) with expansion: !false @@ -5785,26 +5225,22 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( result ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.hasTestFilters() ) with expansion: true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.testSpec().matches(fakeTestCase("notIncluded")) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.testSpec().matches(fakeTestCase("test1")) ) with expansion: true @@ -5817,26 +5253,22 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( result ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.hasTestFilters() ) with expansion: true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.testSpec().matches(fakeTestCase("test1")) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.testSpec().matches(fakeTestCase("alwaysIncluded")) ) with expansion: true @@ -5849,26 +5281,22 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( result ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.hasTestFilters() ) with expansion: true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.testSpec().matches(fakeTestCase("test1")) == false ) with expansion: false == false -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( cfg.testSpec().matches(fakeTestCase("alwaysIncluded")) ) with expansion: true @@ -5881,14 +5309,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "-r", "console"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.reporterName == "console" ) with expansion: "console" == "console" @@ -5901,14 +5327,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "-r", "xml"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.reporterName == "xml" ) with expansion: "xml" == "xml" @@ -5921,14 +5345,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "--reporter", "junit"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.reporterName == "junit" ) with expansion: "junit" == "junit" @@ -5941,12 +5363,30 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE_FALSE( cli.parse({ "test", "-r", "xml", "-r", "junit" }) ) with expansion: !{?} +------------------------------------------------------------------------------- +Process can be configured on command line + reporter + must match one of the available ones +------------------------------------------------------------------------------- +CmdLine.tests.cpp:<line number> +............................................................................... + +CmdLine.tests.cpp:<line number>: PASSED: + CHECK( !result ) +with expansion: + true + +CmdLine.tests.cpp:<line number>: PASSED: + REQUIRE_THAT( result.errorMessage(), Contains("Unrecognized reporter") ) +with expansion: + "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" + contains: "Unrecognized reporter" + ------------------------------------------------------------------------------- Process can be configured on command line debugger @@ -5955,14 +5395,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "-b"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.shouldDebugBreak == true ) with expansion: true == true @@ -5975,14 +5413,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "--break"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.shouldDebugBreak ) with expansion: true @@ -5995,14 +5431,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "-a"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.abortAfter == 1 ) with expansion: 1 == 1 @@ -6015,14 +5449,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "-x", "2"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.abortAfter == 2 ) with expansion: 2 == 2 @@ -6035,14 +5467,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( !result ) with expansion: true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE_THAT( result.errorMessage(), Contains("convert") && Contains("oops") ) with expansion: "Unable to convert 'oops' to destination type" ( contains: "convert" and @@ -6056,14 +5486,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "-e"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.noThrow ) with expansion: true @@ -6076,14 +5504,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "--nothrow"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.noThrow ) with expansion: true @@ -6096,14 +5522,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "-o", "filename.ext"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.outputFilename == "filename.ext" ) with expansion: "filename.ext" == "filename.ext" @@ -6116,14 +5540,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "--out", "filename.ext"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.outputFilename == "filename.ext" ) with expansion: "filename.ext" == "filename.ext" @@ -6136,26 +5558,22 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "-abe"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.abortAfter == 1 ) with expansion: 1 == 1 -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.shouldDebugBreak ) with expansion: true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( config.noThrow == true ) with expansion: true == true @@ -6168,14 +5586,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.useColour == UseColour::Auto ) with expansion: 0 == 0 @@ -6188,14 +5604,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "--use-colour", "auto"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.useColour == UseColour::Auto ) with expansion: 0 == 0 @@ -6208,14 +5622,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "--use-colour", "yes"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.useColour == UseColour::Yes ) with expansion: 1 == 1 @@ -6228,14 +5640,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( cli.parse({"test", "--use-colour", "no"}) ) with expansion: {?} -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: REQUIRE( config.useColour == UseColour::No ) with expansion: 2 == 2 @@ -6248,14 +5658,12 @@ Process can be configured on command line CmdLine.tests.cpp:<line number> ............................................................................... -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK( !result ) with expansion: true -CmdLine.tests.cpp:<line number>: -PASSED: +CmdLine.tests.cpp:<line number>: PASSED: CHECK_THAT( result.errorMessage(), Contains( "colour mode must be one of" ) ) with expansion: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" @@ -6302,8 +5710,7 @@ Regression test #1 Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( actual, !UnorderedEquals(expected) ) with expansion: { 'a', 'b' } not UnorderedEquals: { 'c', 'b' } @@ -6314,8 +5721,7 @@ SUCCEED counts as a test pass Message.tests.cpp:<line number> ............................................................................... -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: with message: this is a success @@ -6325,8 +5731,7 @@ SUCCEED does not require an argument Message.tests.cpp:<line number> ............................................................................... -Message.tests.cpp:<line number>: -PASSED: +Message.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or @@ -6336,8 +5741,7 @@ Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( before == 0 ) with expansion: 0 == 0 @@ -6352,8 +5756,7 @@ Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( after > before ) with expansion: 1 > 0 @@ -6368,8 +5771,7 @@ Scenario: Do that thing with the thing BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( itDoesThis() ) with expansion: true @@ -6385,8 +5787,7 @@ Scenario: Do that thing with the thing BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( itDoesThat() ) with expansion: true @@ -6404,8 +5805,7 @@ Scenario: This is a really long scenario name to see how the list command deals BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: with message: boo! @@ -6416,8 +5816,7 @@ Scenario: Vector resizing affects size and capacity BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 0 ) with expansion: 0 == 0 @@ -6431,14 +5830,12 @@ Scenario: Vector resizing affects size and capacity BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 10 ) with expansion: 10 == 10 -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 10 ) with expansion: 10 >= 10 @@ -6454,14 +5851,12 @@ Scenario: Vector resizing affects size and capacity BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 5 ) with expansion: 5 == 5 -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 10 ) with expansion: 10 >= 10 @@ -6473,8 +5868,7 @@ Scenario: Vector resizing affects size and capacity BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 0 ) with expansion: 0 == 0 @@ -6488,14 +5882,12 @@ Scenario: Vector resizing affects size and capacity BDD.tests.cpp:<line number> ............................................................................... -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 10 ) with expansion: 10 >= 10 -BDD.tests.cpp:<line number>: -PASSED: +BDD.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 0 ) with expansion: 0 == 0 @@ -6518,56 +5910,47 @@ Some simple comparisons between doubles Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == Approx( 1.23 ) ) with expansion: 1.23 == Approx( 1.23 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d != Approx( 1.22 ) ) with expansion: 1.23 != Approx( 1.22 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d != Approx( 1.24 ) ) with expansion: 1.23 != Approx( 1.24 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == 1.23_a ) with expansion: 1.23 == Approx( 1.23 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d != 1.22_a ) with expansion: 1.23 != Approx( 1.22 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx( d ) == 1.23 ) with expansion: Approx( 1.23 ) == 1.23 -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx( d ) != 1.22 ) with expansion: Approx( 1.23 ) != 1.22 -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( Approx( d ) != 1.24 ) with expansion: Approx( 1.23 ) != 1.24 -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( INFINITY == Approx(INFINITY) ) with expansion: inff == Approx( inf ) @@ -6618,8 +6001,7 @@ Static arrays are convertible to string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify(singular) == "{ 1 }" ) with expansion: "{ 1 }" == "{ 1 }" @@ -6631,8 +6013,7 @@ Static arrays are convertible to string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify(arr) == "{ 3, 2, 1 }" ) with expansion: "{ 3, 2, 1 }" == "{ 3, 2, 1 }" @@ -6644,8 +6025,7 @@ Static arrays are convertible to string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })" ) with expansion: "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }" @@ -6658,53 +6038,45 @@ String matchers Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( testStringForMatching(), Contains("string") ) with expansion: "this string contains 'abc' as a substring" contains: "string" -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( testStringForMatching(), Contains("string", Catch::CaseSensitive::No) ) with expansion: "this string contains 'abc' as a substring" contains: "string" (case insensitive) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), Contains("abc") ) with expansion: "this string contains 'abc' as a substring" contains: "abc" -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), Contains("aBC", Catch::CaseSensitive::No) ) with expansion: - "this string contains 'abc' as a substring" contains: "abc" (case insensitive) + "this string contains 'abc' as a substring" contains: "abc" (case insensitive) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), StartsWith("this") ) with expansion: "this string contains 'abc' as a substring" starts with: "this" -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), StartsWith("THIS", Catch::CaseSensitive::No) ) with expansion: "this string contains 'abc' as a substring" starts with: "this" (case insensitive) -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), EndsWith("substring") ) with expansion: "this string contains 'abc' as a substring" ends with: "substring" -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( testStringForMatching(), EndsWith(" SuBsTrInG", Catch::CaseSensitive::No) ) with expansion: "this string contains 'abc' as a substring" ends with: " substring" (case @@ -6717,20 +6089,17 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( empty.empty() ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( empty.size() == 0 ) with expansion: 0 == 0 -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( std::strcmp( empty.c_str(), "" ) == 0 ) with expansion: 0 == 0 @@ -6742,26 +6111,22 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( s.empty() == false ) with expansion: false == false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( s.size() == 5 ) with expansion: 5 == 5 -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isSubstring( s ) == false ) with expansion: false == false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( std::strcmp( rawChars, "hello" ) == 0 ) with expansion: 0 == 0 @@ -6774,20 +6139,17 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isOwned( s ) == false ) with expansion: false == false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( s.c_str() == rawChars ) with expansion: "hello" == "hello" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isOwned( s ) == false ) with expansion: false == false @@ -6799,30 +6161,25 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( original == "original" ) -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isSubstring( original ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isOwned( original ) == false ) with expansion: false == false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isSubstring( original ) == false ) with expansion: false == false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isOwned( original ) ) with expansion: true @@ -6835,26 +6192,22 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( ss.empty() == false ) with expansion: false == false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( ss.size() == 5 ) with expansion: 5 == 5 -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( std::strcmp( ss.c_str(), "hello" ) == 0 ) with expansion: 0 == 0 -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( ss == "hello" ) with expansion: hello == "hello" @@ -6867,44 +6220,37 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isSubstring( ss ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isOwned( ss ) == false ) with expansion: false == false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( rawChars == s.currentData() ) with expansion: "hello world!" == "hello world!" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( ss.c_str() != rawChars ) with expansion: "hello" != "hello world!" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isSubstring( ss ) == false ) with expansion: false == false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( isOwned( ss ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( ss.currentData() != s.currentData() ) with expansion: "hello" != "hello world!" @@ -6917,14 +6263,12 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( ss.size() == 6 ) with expansion: 6 == 6 -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( std::strcmp( ss.c_str(), "world!" ) == 0 ) with expansion: 0 == 0 @@ -6937,8 +6281,7 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( s.c_str() == s2.c_str() ) with expansion: "hello world!" == "hello world!" @@ -6951,8 +6294,7 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( s.c_str() != ss.c_str() ) with expansion: "hello world!" != "hello" @@ -6964,14 +6306,12 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( StringRef("hello") == StringRef("hello") ) with expansion: hello == hello -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( StringRef("hello") != StringRef("cello") ) with expansion: hello != cello @@ -6984,14 +6324,12 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( sr == "a standard string" ) with expansion: a standard string == "a standard string" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( sr.size() == stdStr.size() ) with expansion: 17 == 17 @@ -7004,14 +6342,12 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( sr == "a standard string" ) with expansion: a standard string == "a standard string" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( sr.size() == stdStr.size() ) with expansion: 17 == 17 @@ -7024,14 +6360,12 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( sr == "a standard string" ) with expansion: a standard string == "a standard string" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( sr.size() == stdStr.size() ) with expansion: 17 == 17 @@ -7044,14 +6378,12 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( stdStr == "a stringref" ) with expansion: "a stringref" == "a stringref" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( stdStr.size() == sr.size() ) with expansion: 11 == 11 @@ -7064,14 +6396,12 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( stdStr == "a stringref" ) with expansion: "a stringref" == "a stringref" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( stdStr.size() == sr.size() ) with expansion: 11 == 11 @@ -7084,14 +6414,12 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( stdStr == "a stringref" ) with expansion: "a stringref" == "a stringref" -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( stdStr.size() == sr.size() ) with expansion: 11 == 11 @@ -7103,20 +6431,17 @@ StringRef String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( ascii.numberOfCharacters() == ascii.size() ) with expansion: 39 == 39 -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( simpleu8.numberOfCharacters() == 30 ) with expansion: 30 == 30 -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: REQUIRE( emojis.numberOfCharacters() == 9 ) with expansion: 9 == 9 @@ -7127,26 +6452,22 @@ Stringifying std::chrono::duration helpers ToStringChrono.tests.cpp:<line number> ............................................................................... -ToStringChrono.tests.cpp:<line number>: -PASSED: +ToStringChrono.tests.cpp:<line number>: PASSED: REQUIRE( minute == seconds ) with expansion: 1 m == 60 s -ToStringChrono.tests.cpp:<line number>: -PASSED: +ToStringChrono.tests.cpp:<line number>: PASSED: REQUIRE( hour != seconds ) with expansion: 1 h != 60 s -ToStringChrono.tests.cpp:<line number>: -PASSED: +ToStringChrono.tests.cpp:<line number>: PASSED: REQUIRE( micro != milli ) with expansion: 1 us != 1 ms -ToStringChrono.tests.cpp:<line number>: -PASSED: +ToStringChrono.tests.cpp:<line number>: PASSED: REQUIRE( nano != micro ) with expansion: 1 ns != 1 us @@ -7157,14 +6478,12 @@ Stringifying std::chrono::duration with weird ratios ToStringChrono.tests.cpp:<line number> ............................................................................... -ToStringChrono.tests.cpp:<line number>: -PASSED: +ToStringChrono.tests.cpp:<line number>: PASSED: REQUIRE( half_minute != femto_second ) with expansion: 1 [30/1]s != 1 fs -ToStringChrono.tests.cpp:<line number>: -PASSED: +ToStringChrono.tests.cpp:<line number>: PASSED: REQUIRE( pico_second != atto_second ) with expansion: 1 ps != 1 as @@ -7175,8 +6494,7 @@ Stringifying std::chrono::time_point<system_clock> ToStringChrono.tests.cpp:<line number> ............................................................................... -ToStringChrono.tests.cpp:<line number>: -PASSED: +ToStringChrono.tests.cpp:<line number>: PASSED: REQUIRE( now != later ) with expansion: {iso8601-timestamp} @@ -7208,32 +6526,28 @@ Tag alias can be registered against tag patterns TagAlias.tests.cpp:<line number> ............................................................................... -TagAlias.tests.cpp:<line number>: -PASSED: +TagAlias.tests.cpp:<line number>: PASSED: CHECK_THAT( what, Contains( "[@zzz]" ) ) with expansion: "error: tag alias, '[@zzz]' already registered. First seen at: file:2 Redefined at: file:10" contains: "[@zzz]" -TagAlias.tests.cpp:<line number>: -PASSED: +TagAlias.tests.cpp:<line number>: PASSED: CHECK_THAT( what, Contains( "file" ) ) with expansion: "error: tag alias, '[@zzz]' already registered. First seen at: file:2 Redefined at: file:10" contains: "file" -TagAlias.tests.cpp:<line number>: -PASSED: +TagAlias.tests.cpp:<line number>: PASSED: CHECK_THAT( what, Contains( "2" ) ) with expansion: "error: tag alias, '[@zzz]' already registered. First seen at: file:2 Redefined at: file:10" contains: "2" -TagAlias.tests.cpp:<line number>: -PASSED: +TagAlias.tests.cpp:<line number>: PASSED: CHECK_THAT( what, Contains( "10" ) ) with expansion: "error: tag alias, '[@zzz]' already registered. @@ -7247,20 +6561,16 @@ Tag alias can be registered against tag patterns TagAlias.tests.cpp:<line number> ............................................................................... -TagAlias.tests.cpp:<line number>: -PASSED: +TagAlias.tests.cpp:<line number>: PASSED: CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) ) -TagAlias.tests.cpp:<line number>: -PASSED: +TagAlias.tests.cpp:<line number>: PASSED: CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) ) -TagAlias.tests.cpp:<line number>: -PASSED: +TagAlias.tests.cpp:<line number>: PASSED: CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) ) -TagAlias.tests.cpp:<line number>: -PASSED: +TagAlias.tests.cpp:<line number>: PASSED: CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) ) ------------------------------------------------------------------------------- @@ -7269,8 +6579,7 @@ Test case with one argument VariadicMacros.tests.cpp:<line number> ............................................................................... -VariadicMacros.tests.cpp:<line number>: -PASSED: +VariadicMacros.tests.cpp:<line number>: PASSED: with message: no assertions @@ -7280,8 +6589,7 @@ Test enum bit values Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( 0x<hex digits> == bit30and31 ) with expansion: 3221225472 (0x<hex digits>) == 3221225472 @@ -7292,8 +6600,7 @@ The NO_FAIL macro reports a failure but does not fail the test Message.tests.cpp:<line number> ............................................................................... -Message.tests.cpp:<line number>: -FAILED - but was ok: +Message.tests.cpp:<line number>: FAILED - but was ok: CHECK_NOFAIL( 1 == 2 ) @@ -7305,8 +6612,7 @@ This test 'should' fail but doesn't Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: oops! @@ -7326,14 +6632,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -7345,26 +6649,22 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isSuccessfullyCompleted() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isSuccessfullyCompleted() ) with expansion: true @@ -7375,14 +6675,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -7394,32 +6692,27 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isSuccessfullyCompleted() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isSuccessfullyCompleted() == false ) with expansion: false == false @@ -7432,32 +6725,27 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isSuccessfullyCompleted() ) with expansion: true @@ -7468,14 +6756,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -7487,32 +6773,27 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isSuccessfullyCompleted() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isSuccessfullyCompleted() == false ) with expansion: false == false @@ -7525,38 +6806,32 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isSuccessfullyCompleted() ) with expansion: true @@ -7567,14 +6842,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -7586,14 +6859,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() == false ) with expansion: false == false @@ -7606,26 +6877,22 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() == false ) with expansion: false == false @@ -7639,26 +6906,22 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2b.isSuccessfullyCompleted() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isSuccessfullyCompleted() ) with expansion: true @@ -7669,14 +6932,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -7688,14 +6949,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() == false ) with expansion: false == false @@ -7708,26 +6967,22 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() == false ) with expansion: false == false @@ -7741,50 +6996,42 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( ctx.completedCycle() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2b.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2b.isSuccessfullyCompleted() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isSuccessfullyCompleted() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase3.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1c.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2c.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase3.isSuccessfullyCompleted() ) with expansion: true @@ -7795,14 +7042,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -7814,38 +7059,32 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() ) with expansion: true @@ -7856,14 +7095,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -7875,26 +7112,22 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.index() == 0 ) with expansion: 0 == 0 -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() == false ) with expansion: false == false @@ -7907,14 +7140,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isSuccessfullyCompleted() == false ) with expansion: false == false @@ -7928,50 +7159,42 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.index() == 1 ) with expansion: 1 == 1 -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isComplete() ) with expansion: true @@ -7982,14 +7205,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -8001,26 +7222,22 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.index() == 0 ) with expansion: 0 == 0 -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() == false ) with expansion: false == false @@ -8033,26 +7250,22 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() == false ) with expansion: false == false @@ -8066,56 +7279,47 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.index() == 1 ) with expansion: 1 == 1 -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2b.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isComplete() ) with expansion: true @@ -8126,14 +7330,12 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isOpen() ) with expansion: true @@ -8145,26 +7347,22 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.index() == 0 ) with expansion: 0 == 0 -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() == false ) with expansion: false == false @@ -8177,32 +7375,27 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2.isSuccessfullyCompleted() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase.isComplete() == false ) with expansion: false == false @@ -8216,104 +7409,87 @@ Tracker PartTracker.tests.cpp:<line number> ............................................................................... -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.index() == 0 ) with expansion: 0 == 0 -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2b.isOpen() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1b.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1b.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase2.isComplete() == false ) with expansion: false == false -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase3.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1c.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1c.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1c.index() == 1 ) with expansion: 1 == 1 -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2c.isOpen() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s2c.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( g1c.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( s1c.isComplete() ) with expansion: true -PartTracker.tests.cpp:<line number>: -PASSED: +PartTracker.tests.cpp:<line number>: PASSED: REQUIRE( testCase3.isComplete() ) with expansion: true @@ -8334,50 +7510,42 @@ Use a custom approx Approx.tests.cpp:<line number> ............................................................................... -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == approx( 1.23 ) ) with expansion: 1.23 == Approx( 1.23 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == approx( 1.22 ) ) with expansion: 1.23 == Approx( 1.22 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d == approx( 1.24 ) ) with expansion: 1.23 == Approx( 1.24 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( d != approx( 1.25 ) ) with expansion: 1.23 != Approx( 1.25 ) -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( approx( d ) == 1.23 ) with expansion: Approx( 1.23 ) == 1.23 -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( approx( d ) == 1.22 ) with expansion: Approx( 1.23 ) == 1.22 -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( approx( d ) == 1.24 ) with expansion: Approx( 1.23 ) == 1.24 -Approx.tests.cpp:<line number>: -PASSED: +Approx.tests.cpp:<line number>: PASSED: REQUIRE( approx( d ) != 1.25 ) with expansion: Approx( 1.23 ) != 1.25 @@ -8389,8 +7557,7 @@ Variadic macros VariadicMacros.tests.cpp:<line number> ............................................................................... -VariadicMacros.tests.cpp:<line number>: -PASSED: +VariadicMacros.tests.cpp:<line number>: PASSED: with message: no assertions @@ -8401,14 +7568,12 @@ Vector matchers Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, VectorContains(1) ) with expansion: { 1, 2, 3 } Contains: 1 -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, VectorContains(2) ) with expansion: { 1, 2, 3 } Contains: 2 @@ -8420,26 +7585,22 @@ Vector matchers Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, Contains(v2) ) with expansion: { 1, 2, 3 } Contains: { 1, 2 } -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, Contains(v2) ) with expansion: { 1, 2, 3 } Contains: { 1, 2, 3 } -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, Contains(empty) ) with expansion: { 1, 2, 3 } Contains: { } -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( empty, Contains(empty) ) with expansion: { } Contains: { } @@ -8451,8 +7612,7 @@ Vector matchers Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, VectorContains(1) && VectorContains(2) ) with expansion: { 1, 2, 3 } ( Contains: 1 and Contains: 2 ) @@ -8464,20 +7624,17 @@ Vector matchers Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, Equals(v) ) with expansion: { 1, 2, 3 } Equals: { 1, 2, 3 } -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( empty, Equals(empty) ) with expansion: { } Equals: { } -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, Equals(v2) ) with expansion: { 1, 2, 3 } Equals: { 1, 2, 3 } @@ -8489,26 +7646,22 @@ Vector matchers Matchers.tests.cpp:<line number> ............................................................................... -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( v, UnorderedEquals(v) ) with expansion: { 1, 2, 3 } UnorderedEquals: { 1, 2, 3 } -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: CHECK_THAT( empty, UnorderedEquals(empty) ) with expansion: { } UnorderedEquals: { } -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( permuted, UnorderedEquals(v) ) with expansion: { 1, 3, 2 } UnorderedEquals: { 1, 2, 3 } -Matchers.tests.cpp:<line number>: -PASSED: +Matchers.tests.cpp:<line number>: PASSED: REQUIRE_THAT( permuted, UnorderedEquals(v) ) with expansion: { 2, 3, 1 } UnorderedEquals: { 1, 2, 3 } @@ -8607,16 +7760,13 @@ When checked exceptions are thrown they can be expected or unexpected Exception.tests.cpp:<line number> ............................................................................... -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS_AS( thisThrows(), std::domain_error ) -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( thisDoesntThrow() ) -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS( thisThrows() ) ------------------------------------------------------------------------------- @@ -8689,8 +7839,7 @@ Where the LHS is not a simple value Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -warning: +Tricky.tests.cpp:<line number>: warning: Uncomment the code in this test to check that it gives a sensible compiler error @@ -8703,8 +7852,7 @@ Where there is more to the expression after the RHS Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -warning: +Tricky.tests.cpp:<line number>: warning: Uncomment the code in this test to check that it gives a sensible compiler error @@ -8717,8 +7865,7 @@ X/level/0/a Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- X/level/0/b @@ -8726,8 +7873,7 @@ X/level/0/b Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- X/level/1/a @@ -8735,8 +7881,7 @@ X/level/1/a Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- X/level/1/b @@ -8744,8 +7889,7 @@ X/level/1/b Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- XmlEncode @@ -8754,8 +7898,7 @@ XmlEncode Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( "normal string" ) == "normal string" ) with expansion: "normal string" == "normal string" @@ -8767,8 +7910,7 @@ XmlEncode Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( "" ) == "" ) with expansion: "" == "" @@ -8780,8 +7922,7 @@ XmlEncode Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( "smith & jones" ) == "smith & jones" ) with expansion: "smith & jones" == "smith & jones" @@ -8793,8 +7934,7 @@ XmlEncode Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( "smith < jones" ) == "smith < jones" ) with expansion: "smith < jones" == "smith < jones" @@ -8806,14 +7946,12 @@ XmlEncode Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( "smith > jones" ) == "smith > jones" ) with expansion: "smith > jones" == "smith > jones" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( "smith ]]> jones" ) == "smith ]]> jones" ) with expansion: "smith ]]> jones" @@ -8827,16 +7965,14 @@ XmlEncode Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( stringWithQuotes ) == stringWithQuotes ) with expansion: "don't "quote" me on that" == "don't "quote" me on that" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't "quote" me on that" ) with expansion: "don't "quote" me on that" @@ -8850,8 +7986,7 @@ XmlEncode Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( "[\x01]" ) == "[\\x01]" ) with expansion: "[\x01]" == "[\x01]" @@ -8863,8 +7998,7 @@ XmlEncode Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: REQUIRE( encode( "[\x7F]" ) == "[\\x7F]" ) with expansion: "[\x7F]" == "[\x7F]" @@ -8876,56 +8010,47 @@ XmlEncode: UTF-8 Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode(u8"Here be 👾") == u8"Here be 👾" ) with expansion: "Here be 👾" == "Here be 👾" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode(u8"šš") == u8"šš" ) with expansion: "šš" == "šš" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xDF\xBF") == "\xDF\xBF" ) with expansion: "߿" == "߿" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xE0\xA0\x80") == "\xE0\xA0\x80" ) with expansion: "ࠀ" == "ࠀ" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xED\x9F\xBF") == "\xED\x9F\xBF" ) with expansion: "" == "" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xEE\x80\x80") == "\xEE\x80\x80" ) with expansion: "" == "" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xEF\xBF\xBF") == "\xEF\xBF\xBF" ) with expansion: "" == "" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF0\x90\x80\x80") == "\xF0\x90\x80\x80" ) with expansion: "𐀀" == "𐀀" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF4\x8F\xBF\xBF") == "\xF4\x8F\xBF\xBF" ) with expansion: "" == "" @@ -8938,26 +8063,22 @@ XmlEncode: UTF-8 Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("Here \xFF be 👾") == u8"Here \\xFF be 👾" ) with expansion: "Here \xFF be 👾" == "Here \xFF be 👾" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xFF") == "\\xFF" ) with expansion: "\xFF" == "\xFF" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xC5\xC5\xA0") == u8"\\xC5Š" ) with expansion: "\xC5Š" == "\xC5Š" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF4\x90\x80\x80") == u8"\\xF4\\x90\\x80\\x80" ) with expansion: "\xF4\x90\x80\x80" == "\xF4\x90\x80\x80" @@ -8970,32 +8091,27 @@ XmlEncode: UTF-8 Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xC0\x80") == u8"\\xC0\\x80" ) with expansion: "\xC0\x80" == "\xC0\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF0\x80\x80\x80") == u8"\\xF0\\x80\\x80\\x80" ) with expansion: "\xF0\x80\x80\x80" == "\xF0\x80\x80\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xC1\xBF") == u8"\\xC1\\xBF" ) with expansion: "\xC1\xBF" == "\xC1\xBF" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xE0\x9F\xBF") == u8"\\xE0\\x9F\\xBF" ) with expansion: "\xE0\x9F\xBF" == "\xE0\x9F\xBF" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF0\x8F\xBF\xBF") == u8"\\xF0\\x8F\\xBF\\xBF" ) with expansion: "\xF0\x8F\xBF\xBF" == "\xF0\x8F\xBF\xBF" @@ -9008,26 +8124,22 @@ XmlEncode: UTF-8 Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xED\xA0\x80") == "\xED\xA0\x80" ) with expansion: "���" == "���" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xED\xAF\xBF") == "\xED\xAF\xBF" ) with expansion: "���" == "���" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xED\xB0\x80") == "\xED\xB0\x80" ) with expansion: "���" == "���" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xED\xBF\xBF") == "\xED\xBF\xBF" ) with expansion: "���" == "���" @@ -9040,44 +8152,37 @@ XmlEncode: UTF-8 Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\x80") == u8"\\x80" ) with expansion: "\x80" == "\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\x81") == u8"\\x81" ) with expansion: "\x81" == "\x81" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xBC") == u8"\\xBC" ) with expansion: "\xBC" == "\xBC" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xBF") == u8"\\xBF" ) with expansion: "\xBF" == "\xBF" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF5\x80\x80\x80") == u8"\\xF5\\x80\\x80\\x80" ) with expansion: "\xF5\x80\x80\x80" == "\xF5\x80\x80\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF6\x80\x80\x80") == u8"\\xF6\\x80\\x80\\x80" ) with expansion: "\xF6\x80\x80\x80" == "\xF6\x80\x80\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF7\x80\x80\x80") == u8"\\xF7\\x80\\x80\\x80" ) with expansion: "\xF7\x80\x80\x80" == "\xF7\x80\x80\x80" @@ -9090,80 +8195,67 @@ XmlEncode: UTF-8 Xml.tests.cpp:<line number> ............................................................................... -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xDE") == u8"\\xDE" ) with expansion: "\xDE" == "\xDE" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xDF") == u8"\\xDF" ) with expansion: "\xDF" == "\xDF" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xE0") == u8"\\xE0" ) with expansion: "\xE0" == "\xE0" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xEF") == u8"\\xEF" ) with expansion: "\xEF" == "\xEF" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF0") == u8"\\xF0" ) with expansion: "\xF0" == "\xF0" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF4") == u8"\\xF4" ) with expansion: "\xF4" == "\xF4" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xE0\x80") == u8"\\xE0\\x80" ) with expansion: "\xE0\x80" == "\xE0\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xE0\xBF") == u8"\\xE0\\xBF" ) with expansion: "\xE0\xBF" == "\xE0\xBF" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xE1\x80") == u8"\\xE1\\x80" ) with expansion: "\xE1\x80" == "\xE1\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF0\x80") == u8"\\xF0\\x80" ) with expansion: "\xF0\x80" == "\xF0\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF4\x80") == u8"\\xF4\\x80" ) with expansion: "\xF4\x80" == "\xF4\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF0\x80\x80") == u8"\\xF0\\x80\\x80" ) with expansion: "\xF0\x80\x80" == "\xF0\x80\x80" -Xml.tests.cpp:<line number>: -PASSED: +Xml.tests.cpp:<line number>: PASSED: CHECK( encode("\xF4\x80\x80") == u8"\\xF4\\x80\\x80" ) with expansion: "\xF4\x80\x80" == "\xF4\x80\x80" @@ -9174,20 +8266,17 @@ array<int, N> -> toString ToStringVector.tests.cpp:<line number> ............................................................................... -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( empty ) == "{ }" ) with expansion: "{ }" == "{ }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( oneValue ) == "{ 42 }" ) with expansion: "{ 42 }" == "{ 42 }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( twoValues ) == "{ 42, 250 }" ) with expansion: "{ 42, 250 }" == "{ 42, 250 }" @@ -9198,8 +8287,7 @@ atomic if Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( x == 0 ) with expansion: 0 == 0 @@ -9210,8 +8298,7 @@ boolean member Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( obj.prop != 0 ) with expansion: 0x<hex digits> != 0 @@ -9222,14 +8309,12 @@ checkedElse Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECKED_ELSE( flag ) with expansion: true -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( testCheckedElse( true ) ) with expansion: true @@ -9256,14 +8341,12 @@ checkedIf Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECKED_IF( flag ) with expansion: true -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( testCheckedIf( true ) ) with expansion: true @@ -9290,26 +8373,22 @@ comparisons between const int variables Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( unsigned_char_var == 1 ) with expansion: 1 == 1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( unsigned_short_var == 1 ) with expansion: 1 == 1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( unsigned_int_var == 1 ) with expansion: 1 == 1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( unsigned_long_var == 1 ) with expansion: 1 == 1 @@ -9320,26 +8399,22 @@ comparisons between int variables Condition.tests.cpp:<line number> ............................................................................... -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( long_var == unsigned_char_var ) with expansion: 1 == 1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( long_var == unsigned_short_var ) with expansion: 1 == 1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( long_var == unsigned_int_var ) with expansion: 1 == 1 -Condition.tests.cpp:<line number>: -PASSED: +Condition.tests.cpp:<line number>: PASSED: REQUIRE( long_var == unsigned_long_var ) with expansion: 1 == 1 @@ -9352,8 +8427,7 @@ even more nested SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- even more nested SECTION tests @@ -9363,8 +8437,7 @@ even more nested SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- even more nested SECTION tests @@ -9373,8 +8446,7 @@ even more nested SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- first tag @@ -9420,8 +8492,7 @@ long long Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( l == std::numeric_limits<long long>::max() ) with expansion: 9223372036854775807 (0x<hex digits>) @@ -9459,8 +8530,7 @@ looped SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( b > a ) with expansion: 2 > 1 @@ -9472,8 +8542,7 @@ looped SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( b > a ) with expansion: 3 > 1 @@ -9485,8 +8554,7 @@ looped SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( b > a ) with expansion: 4 > 1 @@ -9498,8 +8566,7 @@ looped SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( b > a ) with expansion: 5 > 1 @@ -9511,8 +8578,7 @@ looped SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( b > a ) with expansion: 6 > 1 @@ -9524,8 +8590,7 @@ looped SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( b > a ) with expansion: 7 > 1 @@ -9537,8 +8602,7 @@ looped SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( b > a ) with expansion: 8 > 1 @@ -9550,8 +8614,7 @@ looped SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( b > a ) with expansion: 9 > 1 @@ -9576,8 +8639,7 @@ with expansion: with message: Testing if fib[1] (1) is even -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( ( fib[i] % 2 ) == 0 ) with expansion: 0 == 0 @@ -9598,8 +8660,7 @@ with expansion: with message: Testing if fib[4] (5) is even -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( ( fib[i] % 2 ) == 0 ) with expansion: 0 == 0 @@ -9641,8 +8702,7 @@ more nested SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( a != b ) with expansion: 1 != 2 @@ -9655,8 +8715,7 @@ more nested SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( a < b ) with expansion: 1 < 2 @@ -9668,14 +8727,12 @@ nested SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( a != b ) with expansion: 1 != 2 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( b != a ) with expansion: 2 != 1 @@ -9688,8 +8745,7 @@ nested SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( a != b ) with expansion: 1 != 2 @@ -9700,8 +8756,7 @@ non streamable - with conv. op Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( s == "7" ) with expansion: "7" == "7" @@ -9712,8 +8767,7 @@ non-copyable objects Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: CHECK( ti == typeid(int) ) with expansion: {?} == {?} @@ -9724,8 +8778,7 @@ not allowed Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- null strings @@ -9733,14 +8786,12 @@ null strings Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( makeString( false ) != static_cast<char*>(0) ) with expansion: "valid string" != {null string} -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( makeString( true ) == static_cast<char*>(0) ) with expansion: {null string} == {null string} @@ -9751,8 +8802,7 @@ null_ptr Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( ptr.get() == 0 ) with expansion: 0 == 0 @@ -9763,8 +8813,7 @@ pair<pair<int,const char *,pair<std::string,int> > -> toString ToStringPair.tests.cpp:<line number> ............................................................................... -ToStringPair.tests.cpp:<line number>: -PASSED: +ToStringPair.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" ) with expansion: "{ { 42, "Arthur" }, { "Ford", 24 } }" @@ -9777,8 +8826,7 @@ pointer to class Tricky.tests.cpp:<line number> ............................................................................... -Tricky.tests.cpp:<line number>: -PASSED: +Tricky.tests.cpp:<line number>: PASSED: REQUIRE( p == 0 ) with expansion: 0 == 0 @@ -9790,14 +8838,12 @@ random SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( a != b ) with expansion: 1 != 2 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( b != a ) with expansion: 2 != 1 @@ -9809,8 +8855,7 @@ random SECTION tests Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( a != b ) with expansion: 1 != 2 @@ -9822,14 +8867,12 @@ replaceInPlace String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( Catch::replaceInPlace( letters, "b", "z" ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( letters == "azcdefcg" ) with expansion: "azcdefcg" == "azcdefcg" @@ -9841,14 +8884,12 @@ replaceInPlace String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( Catch::replaceInPlace( letters, "c", "z" ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( letters == "abzdefzg" ) with expansion: "abzdefzg" == "abzdefzg" @@ -9860,14 +8901,12 @@ replaceInPlace String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( Catch::replaceInPlace( letters, "a", "z" ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( letters == "zbcdefcg" ) with expansion: "zbcdefcg" == "zbcdefcg" @@ -9879,14 +8918,12 @@ replaceInPlace String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( Catch::replaceInPlace( letters, "g", "z" ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( letters == "abcdefcz" ) with expansion: "abcdefcz" == "abcdefcz" @@ -9898,14 +8935,12 @@ replaceInPlace String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( Catch::replaceInPlace( letters, letters, "replaced" ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( letters == "replaced" ) with expansion: "replaced" == "replaced" @@ -9917,14 +8952,12 @@ replaceInPlace String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK_FALSE( Catch::replaceInPlace( letters, "x", "z" ) ) with expansion: !false -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( letters == letters ) with expansion: "abcdefcg" == "abcdefcg" @@ -9936,14 +8969,12 @@ replaceInPlace String.tests.cpp:<line number> ............................................................................... -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( Catch::replaceInPlace( s, "'", "|'" ) ) with expansion: true -String.tests.cpp:<line number>: -PASSED: +String.tests.cpp:<line number>: PASSED: CHECK( s == "didn|'t" ) with expansion: "didn|'t" == "didn|'t" @@ -9987,8 +9018,7 @@ std::map is convertible string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( emptyMap ) == "{ }" ) with expansion: "{ }" == "{ }" @@ -10000,8 +9030,7 @@ std::map is convertible string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( map ) == "{ { \"one\", 1 } }" ) with expansion: "{ { "one", 1 } }" == "{ { "one", 1 } }" @@ -10013,8 +9042,7 @@ std::map is convertible string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( map ) == "{ { \"abc\", 1 }, { \"def\", 2 }, { \"ghi\", 3 } }" ) with expansion: "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }" @@ -10027,8 +9055,7 @@ std::pair<int,const std::string> -> toString ToStringPair.tests.cpp:<line number> ............................................................................... -ToStringPair.tests.cpp:<line number>: -PASSED: +ToStringPair.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(value) == "{ 34, \"xyzzy\" }" ) with expansion: "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" @@ -10039,8 +9066,7 @@ std::pair<int,std::string> -> toString ToStringPair.tests.cpp:<line number> ............................................................................... -ToStringPair.tests.cpp:<line number>: -PASSED: +ToStringPair.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( value ) == "{ 34, \"xyzzy\" }" ) with expansion: "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" @@ -10052,8 +9078,7 @@ std::set is convertible string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( emptySet ) == "{ }" ) with expansion: "{ }" == "{ }" @@ -10065,8 +9090,7 @@ std::set is convertible string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( set ) == "{ \"one\" }" ) with expansion: "{ "one" }" == "{ "one" }" @@ -10078,8 +9102,7 @@ std::set is convertible string ToStringGeneral.tests.cpp:<line number> ............................................................................... -ToStringGeneral.tests.cpp:<line number>: -PASSED: +ToStringGeneral.tests.cpp:<line number>: PASSED: REQUIRE( Catch::Detail::stringify( set ) == "{ \"abc\", \"def\", \"ghi\" }" ) with expansion: "{ "abc", "def", "ghi" }" @@ -10092,8 +9115,7 @@ std::vector<std::pair<std::string,int> > -> toString ToStringPair.tests.cpp:<line number> ............................................................................... -ToStringPair.tests.cpp:<line number>: -PASSED: +ToStringPair.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( pr ) == "{ { \"green\", 55 } }" ) with expansion: "{ { "green", 55 } }" @@ -10117,30 +9139,26 @@ stringify ranges ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(streamable_range{}) == "op<<(streamable_range)" ) with expansion: "op<<(streamable_range)" == "op<<(streamable_range)" -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(stringmaker_range{}) == "stringmaker(streamable_range)" ) with expansion: "stringmaker(streamable_range)" == "stringmaker(streamable_range)" -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(just_range{}) == "{ 1, 2, 3, 4 }" ) with expansion: "{ 1, 2, 3, 4 }" == "{ 1, 2, 3, 4 }" -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(disabled_range{}) == "{ !!! }" ) with expansion: "{ !!! }" == "{ !!! }" @@ -10151,8 +9169,7 @@ stringify( has_maker ) ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( item ) == "StringMaker<has_maker>" ) with expansion: "StringMaker<has_maker>" @@ -10165,8 +9182,7 @@ stringify( has_maker_and_operator ) ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( item ) == "StringMaker<has_maker_and_operator>" ) with expansion: "StringMaker<has_maker_and_operator>" @@ -10179,8 +9195,7 @@ stringify( has_neither ) ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(item) == "{ !!! }" ) with expansion: "{ !!! }" == "{ !!! }" @@ -10191,8 +9206,7 @@ stringify( has_operator ) ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( item ) == "operator<<( has_operator )" ) with expansion: "operator<<( has_operator )" @@ -10205,8 +9219,7 @@ stringify( has_template_operator ) ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( item ) == "operator<<( has_template_operator )" ) with expansion: "operator<<( has_template_operator )" @@ -10219,8 +9232,7 @@ stringify( vectors<has_maker> ) ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker> }" ) with expansion: "{ StringMaker<has_maker> }" @@ -10233,8 +9245,7 @@ stringify( vectors<has_maker_and_operator> ) ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker_and_operator> }" ) with expansion: "{ StringMaker<has_maker_and_operator> }" @@ -10247,8 +9258,7 @@ stringify( vectors<has_operator> ) ToStringWhich.tests.cpp:<line number> ............................................................................... -ToStringWhich.tests.cpp:<line number>: -PASSED: +ToStringWhich.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify( v ) == "{ operator<<( has_operator ) }" ) with expansion: "{ operator<<( has_operator ) }" @@ -10261,8 +9271,7 @@ strlen3 Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: REQUIRE( data.str.size() == data.len ) with expansion: 3 == 3 @@ -10273,8 +9282,7 @@ strlen3 Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: REQUIRE( data.str.size() == data.len ) with expansion: 3 == 3 @@ -10285,8 +9293,7 @@ strlen3 Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: REQUIRE( data.str.size() == data.len ) with expansion: 5 == 5 @@ -10297,8 +9304,7 @@ strlen3 Generators.tests.cpp:<line number> ............................................................................... -Generators.tests.cpp:<line number>: -PASSED: +Generators.tests.cpp:<line number>: PASSED: REQUIRE( data.str.size() == data.len ) with expansion: 4 == 4 @@ -10319,8 +9325,7 @@ toString on const wchar_t const pointer returns the string contents Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( result == "\"wide load\"" ) with expansion: ""wide load"" == ""wide load"" @@ -10331,8 +9336,7 @@ toString on const wchar_t pointer returns the string contents Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( result == "\"wide load\"" ) with expansion: ""wide load"" == ""wide load"" @@ -10343,8 +9347,7 @@ toString on wchar_t const pointer returns the string contents Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( result == "\"wide load\"" ) with expansion: ""wide load"" == ""wide load"" @@ -10355,8 +9358,7 @@ toString on wchar_t returns the string contents Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: CHECK( result == "\"wide load\"" ) with expansion: ""wide load"" == ""wide load"" @@ -10367,20 +9369,17 @@ toString(enum class w/operator<<) EnumToString.tests.cpp:<line number> ............................................................................... -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" ) with expansion: "E2/V0" == "E2/V0" -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e1) == "E2/V1" ) with expansion: "E2/V1" == "E2/V1" -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e3) == "Unknown enum value 10" ) with expansion: "Unknown enum value 10" @@ -10393,14 +9392,12 @@ toString(enum class) EnumToString.tests.cpp:<line number> ............................................................................... -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e0) == "0" ) with expansion: "0" == "0" -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e1) == "1" ) with expansion: "1" == "1" @@ -10411,14 +9408,12 @@ toString(enum w/operator<<) EnumToString.tests.cpp:<line number> ............................................................................... -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e0) == "E2{0}" ) with expansion: "E2{0}" == "E2{0}" -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e1) == "E2{1}" ) with expansion: "E2{1}" == "E2{1}" @@ -10429,14 +9424,12 @@ toString(enum) EnumToString.tests.cpp:<line number> ............................................................................... -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e0) == "0" ) with expansion: "0" == "0" -EnumToString.tests.cpp:<line number>: -PASSED: +EnumToString.tests.cpp:<line number>: PASSED: CHECK( ::Catch::Detail::stringify(e1) == "1" ) with expansion: "1" == "1" @@ -10447,14 +9440,12 @@ tuple<> ToStringTuple.tests.cpp:<line number> ............................................................................... -ToStringTuple.tests.cpp:<line number>: -PASSED: +ToStringTuple.tests.cpp:<line number>: PASSED: CHECK( "{ }" == ::Catch::Detail::stringify(type{}) ) with expansion: "{ }" == "{ }" -ToStringTuple.tests.cpp:<line number>: -PASSED: +ToStringTuple.tests.cpp:<line number>: PASSED: CHECK( "{ }" == ::Catch::Detail::stringify(value) ) with expansion: "{ }" == "{ }" @@ -10465,14 +9456,12 @@ tuple<float,int> ToStringTuple.tests.cpp:<line number> ............................................................................... -ToStringTuple.tests.cpp:<line number>: -PASSED: +ToStringTuple.tests.cpp:<line number>: PASSED: CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) ) with expansion: "1.2f" == "1.2f" -ToStringTuple.tests.cpp:<line number>: -PASSED: +ToStringTuple.tests.cpp:<line number>: PASSED: CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) ) with expansion: "{ 1.2f, 0 }" == "{ 1.2f, 0 }" @@ -10483,8 +9472,7 @@ tuple<int> ToStringTuple.tests.cpp:<line number> ............................................................................... -ToStringTuple.tests.cpp:<line number>: -PASSED: +ToStringTuple.tests.cpp:<line number>: PASSED: CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) ) with expansion: "{ 0 }" == "{ 0 }" @@ -10495,8 +9483,7 @@ tuple<0,int,const char *> ToStringTuple.tests.cpp:<line number> ............................................................................... -ToStringTuple.tests.cpp:<line number>: -PASSED: +ToStringTuple.tests.cpp:<line number>: PASSED: CHECK( "{ 0, 42, \"Catch me\" }" == ::Catch::Detail::stringify(value) ) with expansion: "{ 0, 42, "Catch me" }" @@ -10509,8 +9496,7 @@ tuple<string,string> ToStringTuple.tests.cpp:<line number> ............................................................................... -ToStringTuple.tests.cpp:<line number>: -PASSED: +ToStringTuple.tests.cpp:<line number>: PASSED: CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) ) with expansion: "{ "hello", "world" }" @@ -10523,8 +9509,7 @@ tuple<tuple<int>,tuple<>,float> ToStringTuple.tests.cpp:<line number> ............................................................................... -ToStringTuple.tests.cpp:<line number>: -PASSED: +ToStringTuple.tests.cpp:<line number>: PASSED: CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) ) with expansion: "{ { 42 }, { }, 1.2f }" @@ -10537,14 +9522,12 @@ vec<vec<string,alloc>> -> toString ToStringVector.tests.cpp:<line number> ............................................................................... -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(v) == "{ }" ) with expansion: "{ }" == "{ }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }" ) with expansion: "{ { "hello" }, { "world" } }" @@ -10557,20 +9540,17 @@ vector<bool> -> toString ToStringVector.tests.cpp:<line number> ............................................................................... -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(bools) == "{ }" ) with expansion: "{ }" == "{ }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(bools) == "{ true }" ) with expansion: "{ true }" == "{ true }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(bools) == "{ true, false }" ) with expansion: "{ true, false }" == "{ true, false }" @@ -10581,20 +9561,17 @@ vector<int,allocator> -> toString ToStringVector.tests.cpp:<line number> ............................................................................... -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" ) with expansion: "{ }" == "{ }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" ) with expansion: "{ 42 }" == "{ 42 }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" ) with expansion: "{ 42, 250 }" == "{ 42, 250 }" @@ -10605,20 +9582,17 @@ vector<int> -> toString ToStringVector.tests.cpp:<line number> ............................................................................... -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" ) with expansion: "{ }" == "{ }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" ) with expansion: "{ 42 }" == "{ 42 }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" ) with expansion: "{ 42, 250 }" == "{ 42, 250 }" @@ -10629,20 +9603,17 @@ vector<string> -> toString ToStringVector.tests.cpp:<line number> ............................................................................... -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" ) with expansion: "{ }" == "{ }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ \"hello\" }" ) with expansion: "{ "hello" }" == "{ "hello" }" -ToStringVector.tests.cpp:<line number>: -PASSED: +ToStringVector.tests.cpp:<line number>: PASSED: REQUIRE( ::Catch::Detail::stringify(vv) == "{ \"hello\", \"world\" }" ) with expansion: "{ "hello", "world" }" @@ -10655,14 +9626,12 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 5 ) with expansion: 5 == 5 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 5 ) with expansion: 5 >= 5 @@ -10674,14 +9643,12 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 10 ) with expansion: 10 == 10 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 10 ) with expansion: 10 >= 10 @@ -10692,14 +9659,12 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 5 ) with expansion: 5 == 5 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 5 ) with expansion: 5 >= 5 @@ -10711,14 +9676,12 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 0 ) with expansion: 0 == 0 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 5 ) with expansion: 5 >= 5 @@ -10731,8 +9694,7 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() == 0 ) with expansion: 0 == 0 @@ -10743,14 +9705,12 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 5 ) with expansion: 5 == 5 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 5 ) with expansion: 5 >= 5 @@ -10762,14 +9722,12 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 5 ) with expansion: 5 == 5 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 10 ) with expansion: 10 >= 10 @@ -10780,14 +9738,12 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 5 ) with expansion: 5 == 5 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 5 ) with expansion: 5 >= 5 @@ -10799,14 +9755,12 @@ vectors can be sized and resized Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.size() == 5 ) with expansion: 5 == 5 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( v.capacity() >= 5 ) with expansion: 5 >= 5 @@ -10814,14 +9768,13 @@ with expansion: ------------------------------------------------------------------------------- xmlentitycheck embedded xml: <test>it should be possible to embed xml characters, such as <, - " or &, or even whole <xml>documents</xml> within an attribute</test> + " or &, or even whole <xml>documents</xml> within an attribute </test> ------------------------------------------------------------------------------- Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- xmlentitycheck @@ -10830,10 +9783,9 @@ xmlentitycheck Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: =============================================================================== -test cases: 213 | 147 passed | 62 failed | 4 failed as expected -assertions: 1242 | 1099 passed | 122 failed | 21 failed as expected +test cases: 216 | 150 passed | 62 failed | 4 failed as expected +assertions: 1248 | 1105 passed | 122 failed | 21 failed as expected diff --git a/packages/Catch2/projects/SelfTest/Baselines/console.swa4.approved.txt b/packages/Catch2/projects/SelfTest/Baselines/console.swa4.approved.txt index d69844d8b53578eac5d94239540856827bb7ffee..36ca1bde56afeffddb2adc4152c0a7b94b7642a2 100644 --- a/packages/Catch2/projects/SelfTest/Baselines/console.swa4.approved.txt +++ b/packages/Catch2/projects/SelfTest/Baselines/console.swa4.approved.txt @@ -3,14 +3,15 @@ <exe-name> is a <version> host application. Run with -? for options +Randomness seeded to: 1 + ------------------------------------------------------------------------------- # A test name that starts with a # ------------------------------------------------------------------------------- Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: yay @@ -21,14 +22,12 @@ with message: Decomposition.tests.cpp:<line number> ............................................................................... -Decomposition.tests.cpp:<line number>: -PASSED: +Decomposition.tests.cpp:<line number>: PASSED: REQUIRE( fptr == 0 ) with expansion: 0 == 0 -Decomposition.tests.cpp:<line number>: -PASSED: +Decomposition.tests.cpp:<line number>: PASSED: REQUIRE( fptr == 0l ) with expansion: 0 == 0 @@ -39,14 +38,12 @@ with expansion: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( y.v == 0 ) with expansion: 0 == 0 -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( 0 == y.v ) with expansion: 0 == 0 @@ -57,38 +54,32 @@ with expansion: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 == t2 ) with expansion: {?} == {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 != t2 ) with expansion: {?} != {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 < t2 ) with expansion: {?} < {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 > t2 ) with expansion: {?} > {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 <= t2 ) with expansion: {?} <= {?} -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( t1 >= t2 ) with expansion: {?} >= {?} @@ -99,8 +90,7 @@ with expansion: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: ------------------------------------------------------------------------------- #1238 @@ -108,8 +98,7 @@ PASSED: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( std::memcmp(uarr, "123", sizeof(uarr)) == 0 ) with expansion: 0 == 0 @@ -117,8 +106,7 @@ with messages: uarr := "123" sarr := "456" -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( std::memcmp(sarr, "456", sizeof(sarr)) == 0 ) with expansion: 0 == 0 @@ -132,8 +120,18 @@ with messages: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: + +------------------------------------------------------------------------------- +#1403 +------------------------------------------------------------------------------- +Compilation.tests.cpp:<line number> +............................................................................... + +Compilation.tests.cpp:<line number>: PASSED: + REQUIRE( h1 == h2 ) +with expansion: + [1403 helper] == [1403 helper] ------------------------------------------------------------------------------- #748 - captures with unexpected exceptions @@ -167,8 +165,7 @@ due to unexpected exception with messages: Exception.tests.cpp:<line number> ............................................................................... -Exception.tests.cpp:<line number>: -PASSED: +Exception.tests.cpp:<line number>: PASSED: REQUIRE_THROWS( thisThrows() ) with message: answer := 42 @@ -179,8 +176,7 @@ with message: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( 42 == f ) with expansion: 42 == {?} @@ -191,38 +187,31 @@ with expansion: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( a == t ) with expansion: 3 == 3 -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: CHECK( a == t ) with expansion: 3 == 3 -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE_THROWS( throws_int(true) ) -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: CHECK_THROWS_AS( throws_int(true), int ) -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE_NOTHROW( throws_int(false) ) -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE_THAT( "aaa", Catch::EndsWith("aaa") ) with expansion: "aaa" ends with: "aaa" -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( templated_tests<int>(3) ) with expansion: true @@ -238,8 +227,7 @@ Misc.tests.cpp:<line number>: FAILED: with expansion: 1 == 0 -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: REQUIRE( errno == 1 ) with expansion: 1 == 1 @@ -250,8 +238,7 @@ with expansion: Compilation.tests.cpp:<line number> ............................................................................... -Compilation.tests.cpp:<line number>: -PASSED: +Compilation.tests.cpp:<line number>: PASSED: REQUIRE( x == 4 ) with expansion: {?} == 4 @@ -265,8 +252,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -277,8 +263,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -289,8 +274,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -301,8 +285,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -313,8 +296,7 @@ with message: Misc.tests.cpp:<line number> ............................................................................... -Misc.tests.cpp:<line number>: -PASSED: +Misc.tests.cpp:<line number>: PASSED: with message: Everything is OK @@ -341,6 +323,6 @@ with expansion: !true =============================================================================== -test cases: 14 | 11 passed | 1 failed | 2 failed as expected -assertions: 38 | 31 passed | 4 failed | 3 failed as expected +test cases: 15 | 12 passed | 1 failed | 2 failed as expected +assertions: 39 | 32 passed | 4 failed | 3 failed as expected diff --git a/packages/Catch2/projects/SelfTest/Baselines/junit.sw.approved.txt b/packages/Catch2/projects/SelfTest/Baselines/junit.sw.approved.txt index ad5caeb17976c45856b83aa42adecff16e6e624b..b62c62aae720eab96a26de70512fd8f609323a45 100644 --- a/packages/Catch2/projects/SelfTest/Baselines/junit.sw.approved.txt +++ b/packages/Catch2/projects/SelfTest/Baselines/junit.sw.approved.txt @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <testsuitesloose text artifact > - <testsuite name="<exe-name>" errors="17" failures="106" tests="1243" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> + <testsuite name="<exe-name>" errors="17" failures="106" tests="1249" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> <testcase classname="<exe-name>.global" name="# A test name that starts with a #" time="{duration}"/> <testcase classname="<exe-name>.global" name="#1005: Comparing pointer to int and long (NULL can be either on various systems)" time="{duration}"/> <testcase classname="<exe-name>.global" name="#1027" time="{duration}"/> @@ -9,6 +9,7 @@ <testcase classname="<exe-name>.global" name="#1175 - Hidden Test" time="{duration}"/> <testcase classname="<exe-name>.global" name="#1238" time="{duration}"/> <testcase classname="<exe-name>.(Fixture_1245<int, int>)" name="#1245" time="{duration}"/> + <testcase classname="<exe-name>.global" name="#1403" time="{duration}"/> <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}"> <error type="TEST_CASE"> expected exception @@ -374,6 +375,7 @@ Exception.tests.cpp:<line number> </error> </testcase> <testcase classname="<exe-name>.global" name="Objects that evaluated in boolean contexts can be checked" time="{duration}"/> + <testcase classname="<exe-name>.global" name="Optionally static assertions" time="{duration}"/> <testcase classname="<exe-name>.global" name="Ordering comparison checks that should fail" time="{duration}"> <failure message="7 > 7" type="CHECK"> Condition.tests.cpp:<line number> @@ -478,6 +480,7 @@ Message.tests.cpp:<line number> <testcase classname="<exe-name>.global" name="Parse test names and tags/empty quoted name" time="{duration}"/> <testcase classname="<exe-name>.global" name="Parse test names and tags/quoted string followed by tag exclusion" time="{duration}"/> <testcase classname="<exe-name>.global" name="Pointers can be compared to null" time="{duration}"/> + <testcase classname="<exe-name>.global" name="Predicate matcher can accept const char*" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/empty args don't cause a crash" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/default - no arguments" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/test lists/Specify one test case using" time="{duration}"/> @@ -487,6 +490,7 @@ Message.tests.cpp:<line number> <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/-r/xml" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/--reporter/junit" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/Only one reporter is accepted" time="{duration}"/> + <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/must match one of the available ones" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/debugger/-b" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/debugger/--break" time="{duration}"/> <testcase classname="<exe-name>.global" name="Process can be configured on command line/abort/-a aborts after first failure" time="{duration}"/> diff --git a/packages/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt b/packages/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt index 3428787441dc597b7b16bd01346c68079725eadc..00ea5f76db7a42db3c5e6f82fdd412baafff1930 100644 --- a/packages/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt +++ b/packages/Catch2/projects/SelfTest/Baselines/xml.sw.approved.txt @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Catch name="<exe-name>"> + <Randomness seed="1"/> <Group name="<exe-name>"> <TestCase name="# A test name that starts with a #" filename="projects/<exe-name>/UsageTests/Misc.tests.cpp" > <OverallResult success="true"/> @@ -130,6 +131,17 @@ <TestCase name="#1245" tags="[compilation]" filename="projects/<exe-name>/UsageTests/Compilation.tests.cpp" > <OverallResult success="true"/> </TestCase> + <TestCase name="#1403" tags="[compilation]" filename="projects/<exe-name>/UsageTests/Compilation.tests.cpp" > + <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/UsageTests/Compilation.tests.cpp" > + <Original> + h1 == h2 + </Original> + <Expanded> + [1403 helper] == [1403 helper] + </Expanded> + </Expression> + <OverallResult success="true"/> + </TestCase> <TestCase name="#748 - captures with unexpected exceptions" tags="[!shouldfail][!throws][.][failing]" filename="projects/<exe-name>/UsageTests/Exception.tests.cpp" > <Section name="outside assertions" filename="projects/<exe-name>/UsageTests/Exception.tests.cpp" > <Info> @@ -4397,6 +4409,9 @@ </Expression> <OverallResult success="true"/> </TestCase> + <TestCase name="Optionally static assertions" tags="[compilation]" filename="projects/<exe-name>/UsageTests/Compilation.tests.cpp" > + <OverallResult success="true"/> + </TestCase> <TestCase name="Ordering comparison checks that should fail" tags="[.][failing]" filename="projects/<exe-name>/UsageTests/Condition.tests.cpp" > <Expression success="false" type="CHECK" filename="projects/<exe-name>/UsageTests/Condition.tests.cpp" > <Original> @@ -5949,6 +5964,17 @@ </Expression> <OverallResult success="true"/> </TestCase> + <TestCase name="Predicate matcher can accept const char*" tags="[compilation][matchers]" filename="projects/<exe-name>/UsageTests/Matchers.tests.cpp" > + <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/UsageTests/Matchers.tests.cpp" > + <Original> + "foo", Predicate<const char*>([] (const char* const&) { return true; }) + </Original> + <Expanded> + "foo" matches undescribed predicate + </Expanded> + </Expression> + <OverallResult success="true"/> + </TestCase> <TestCase name="Process can be configured on command line" tags="[command-line][config]" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > <Section name="empty args don't cause a crash" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > @@ -6222,6 +6248,28 @@ </Section> <OverallResults successes="1" failures="0" expectedFailures="0"/> </Section> + <Section name="reporter" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > + <Section name="must match one of the available ones" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > + <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > + <Original> + !result + </Original> + <Expanded> + true + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > + <Original> + result.errorMessage(), Contains("Unrecognized reporter") + </Original> + <Expanded> + "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter" + </Expanded> + </Expression> + <OverallResults successes="2" failures="0" expectedFailures="0"/> + </Section> + <OverallResults successes="2" failures="0" expectedFailures="0"/> + </Section> <Section name="debugger" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > <Section name="-b" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > @@ -11321,7 +11369,7 @@ loose text artifact </Section> <OverallResult success="true"/> </TestCase> - <OverallResults successes="1099" failures="123" expectedFailures="21"/> + <OverallResults successes="1105" failures="123" expectedFailures="21"/> </Group> - <OverallResults successes="1099" failures="122" expectedFailures="21"/> + <OverallResults successes="1105" failures="122" expectedFailures="21"/> </Catch> diff --git a/packages/Catch2/projects/SelfTest/IntrospectiveTests/CmdLine.tests.cpp b/packages/Catch2/projects/SelfTest/IntrospectiveTests/CmdLine.tests.cpp index cb635eade97a2ffab998cbcf059081b3e665469e..9b5b0ed7c89985fd1aa3d44e6c9dc3f00dc55531 100644 --- a/packages/Catch2/projects/SelfTest/IntrospectiveTests/CmdLine.tests.cpp +++ b/packages/Catch2/projects/SelfTest/IntrospectiveTests/CmdLine.tests.cpp @@ -280,7 +280,6 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]" CHECK(config.processName == ""); } - SECTION("default - no arguments") { auto result = cli.parse({"test"}); CHECK(result); @@ -345,8 +344,15 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]" SECTION("Only one reporter is accepted") { REQUIRE_FALSE(cli.parse({ "test", "-r", "xml", "-r", "junit" })); } - } + SECTION("must match one of the available ones") { + auto result = cli.parse({"test", "--reporter", "unsupported"}); + CHECK(!result); +#ifndef CATCH_CONFIG_DISABLE_MATCHERS + REQUIRE_THAT(result.errorMessage(), Contains("Unrecognized reporter")); +#endif + } + } SECTION("debugger") { SECTION("-b") { diff --git a/packages/Catch2/projects/SelfTest/UsageTests/Compilation.tests.cpp b/packages/Catch2/projects/SelfTest/UsageTests/Compilation.tests.cpp index 2e518ef2053563699bc53b20de84df5a25b890a8..325a81427ef50c7972f0addc4ee163f5648b3dbc 100644 --- a/packages/Catch2/projects/SelfTest/UsageTests/Compilation.tests.cpp +++ b/packages/Catch2/projects/SelfTest/UsageTests/Compilation.tests.cpp @@ -5,6 +5,26 @@ * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ +#include <type_traits> + +// Setup for #1403 -- look for global overloads of operator << for classes +// in a different namespace. +#include <ostream> + +namespace foo { + struct helper_1403 { + bool operator==(helper_1403) const { return true; } + }; +} + +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wmissing-declarations" +#endif +std::ostream& operator<<(std::ostream& out, foo::helper_1403 const&) { + return out << "[1403 helper]"; +} +/////////////////////////////// + #include "catch.hpp" #include <cstring> @@ -154,4 +174,16 @@ namespace { namespace CompilationTests { SUCCEED(); } + TEST_CASE("#1403", "[compilation]") { + ::foo::helper_1403 h1, h2; + REQUIRE(h1 == h2); + } + + TEST_CASE("Optionally static assertions", "[compilation]") { + STATIC_REQUIRE( std::is_void<void>::value ); + STATIC_REQUIRE_FALSE( std::is_void<int>::value ); + } + }} // namespace CompilationTests + + diff --git a/packages/Catch2/projects/SelfTest/UsageTests/Matchers.tests.cpp b/packages/Catch2/projects/SelfTest/UsageTests/Matchers.tests.cpp index e09dad14e3cf18dad3e035438cfd70c6d1869a18..f07481d46d3e7b55cf892a47dac0a8aee0f1ebd2 100644 --- a/packages/Catch2/projects/SelfTest/UsageTests/Matchers.tests.cpp +++ b/packages/Catch2/projects/SelfTest/UsageTests/Matchers.tests.cpp @@ -432,6 +432,10 @@ namespace { namespace MatchersTests { CHECK_THAT(actual, !UnorderedEquals(expected)); } + TEST_CASE("Predicate matcher can accept const char*", "[matchers][compilation]") { + REQUIRE_THAT("foo", Predicate<const char*>([] (const char* const&) { return true; })); + } + } } // namespace MatchersTests #endif // CATCH_CONFIG_DISABLE_MATCHERS diff --git a/packages/Catch2/scripts/approvalTests.py b/packages/Catch2/scripts/approvalTests.py index e2b0ce937732302a550b5780636925d4e196e44e..bb01e6d57063a8e0f04a668d2799d8ea32f8ab25 100755 --- a/packages/Catch2/scripts/approvalTests.py +++ b/packages/Catch2/scripts/approvalTests.py @@ -18,7 +18,7 @@ if os.name == 'nt': rootPath = os.path.join(catchPath, 'projects/SelfTest/Baselines') - +langFilenameParser = re.compile(r'(.+\.[ch]pp)') filelocParser = re.compile(r''' .*/ (.+\.[ch]pp) # filename @@ -91,12 +91,24 @@ def diffFiles(fileA, fileB): return [line for line in diff if line[0] in ('+', '-')] -def filterLine(line, isCompact): +def normalizeFilepath(line): if catchPath in line: # make paths relative to Catch root line = line.replace(catchPath + os.sep, '') + + m = langFilenameParser.match(line) + if m: + filepath = m.group(0) # go from \ in windows paths to / - line = line.replace('\\', '/') + filepath = filepath.replace('\\', '/') + # remove start of relative path + filepath = filepath.replace('../', '') + line = line[:m.start()] + filepath + line[m.end():] + + return line + +def filterLine(line, isCompact): + line = normalizeFilepath(line) # strip source line numbers m = filelocParser.match(line) @@ -181,17 +193,17 @@ print(" " + cmdPath) # ## Keep default reporters here ## # Standard console reporter -approve("console.std", ["~[!nonportable]~[!benchmark]~[approvals]", "--order", "lex", "--rng-seed", "0"]) +approve("console.std", ["~[!nonportable]~[!benchmark]~[approvals]", "--order", "lex", "--rng-seed", "1"]) # console reporter, include passes, warn about No Assertions -approve("console.sw", ["~[!nonportable]~[!benchmark]~[approvals]", "-s", "-w", "NoAssertions", "--order", "lex", "--rng-seed", "0"]) +approve("console.sw", ["~[!nonportable]~[!benchmark]~[approvals]", "-s", "-w", "NoAssertions", "--order", "lex", "--rng-seed", "1"]) # console reporter, include passes, warn about No Assertions, limit failures to first 4 -approve("console.swa4", ["~[!nonportable]~[!benchmark]~[approvals]", "-s", "-w", "NoAssertions", "-x", "4", "--order", "lex", "--rng-seed", "0"]) +approve("console.swa4", ["~[!nonportable]~[!benchmark]~[approvals]", "-s", "-w", "NoAssertions", "-x", "4", "--order", "lex", "--rng-seed", "1"]) # junit reporter, include passes, warn about No Assertions -approve("junit.sw", ["~[!nonportable]~[!benchmark]~[approvals]", "-s", "-w", "NoAssertions", "-r", "junit", "--order", "lex", "--rng-seed", "0"]) +approve("junit.sw", ["~[!nonportable]~[!benchmark]~[approvals]", "-s", "-w", "NoAssertions", "-r", "junit", "--order", "lex", "--rng-seed", "1"]) # xml reporter, include passes, warn about No Assertions -approve("xml.sw", ["~[!nonportable]~[!benchmark]~[approvals]", "-s", "-w", "NoAssertions", "-r", "xml", "--order", "lex", "--rng-seed", "0"]) +approve("xml.sw", ["~[!nonportable]~[!benchmark]~[approvals]", "-s", "-w", "NoAssertions", "-r", "xml", "--order", "lex", "--rng-seed", "1"]) # compact reporter, include passes, warn about No Assertions -approve('compact.sw', ['~[!nonportable]~[!benchmark]~[approvals]', '-s', '-w', 'NoAssertions', '-r', 'compact', '--order', 'lex', "--rng-seed", "0"]) +approve('compact.sw', ['~[!nonportable]~[!benchmark]~[approvals]', '-s', '-w', 'NoAssertions', '-r', 'compact', '--order', 'lex', "--rng-seed", "1"]) if overallResult != 0: print("If these differences are expected, run approve.py to approve new baselines.") diff --git a/packages/Catch2/single_include/catch2/catch.hpp b/packages/Catch2/single_include/catch2/catch.hpp index 4191607a7931fbd827924bd23c852b69381ff5b7..b324e56aa86d78cce5ad8705fb2c219a3a4348fe 100644 --- a/packages/Catch2/single_include/catch2/catch.hpp +++ b/packages/Catch2/single_include/catch2/catch.hpp @@ -1,6 +1,6 @@ /* - * Catch v2.4.1 - * Generated: 2018-09-28 15:50:15.645795 + * Catch v2.4.2 + * Generated: 2018-10-26 21:12:29.223927 * ---------------------------------------------------------- * This file has been merged from multiple headers. Please don't edit it directly * Copyright (c) 2018 Two Blue Cubes Ltd. All rights reserved. @@ -15,7 +15,7 @@ #define CATCH_VERSION_MAJOR 2 #define CATCH_VERSION_MINOR 4 -#define CATCH_VERSION_PATCH 1 +#define CATCH_VERSION_PATCH 2 #ifdef __clang__ # pragma clang system_header @@ -356,6 +356,10 @@ namespace Catch { #include <string> #include <cstdint> +// We need a dummy global operator<< so we can bring it into Catch namespace later +struct Catch_global_namespace_dummy {}; +std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); + namespace Catch { struct CaseSensitive { enum Choice { @@ -397,6 +401,11 @@ namespace Catch { std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); + // Bring in operator<< from global namespace into Catch namespace + // This is necessary because the overload of operator<< above makes + // lookup stop at namespace Catch + using ::operator<<; + // Use this in variadic streaming macros to allow // >> +StreamEndStop // as well as @@ -850,14 +859,7 @@ inline id performOptionalSelector( id obj, SEL sel ) { #pragma warning(disable:4180) // We attempt to stream a function (address) by const&, which MSVC complains about but is harmless #endif -// We need a dummy global operator<< so we can bring it into Catch namespace later -struct Catch_global_namespace_dummy {}; -std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); - namespace Catch { - // Bring in operator<< from global namespace into Catch namespace - using ::operator<<; - namespace Detail { extern const std::string unprintableString; @@ -5121,6 +5123,7 @@ namespace Catch { struct LeakDetector { LeakDetector(); + ~LeakDetector(); }; } @@ -5772,7 +5775,7 @@ namespace Catch { // // See https://github.com/philsquared/Clara for more details -// Clara v1.1.4 +// Clara v1.1.5 #ifndef CATCH_CLARA_CONFIG_CONSOLE_WIDTH @@ -5798,8 +5801,8 @@ namespace Catch { // // A single-header library for wrapping and laying out basic text, by Phil Nash // -// This work is licensed under the BSD 2-Clause license. -// See the accompanying LICENSE file, or the one at https://opensource.org/licenses/BSD-2-Clause +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // // This project is hosted at https://github.com/philsquared/textflowcpp @@ -5813,314 +5816,324 @@ namespace Catch { #define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH 80 #endif -namespace Catch { namespace clara { namespace TextFlow { - - inline auto isWhitespace( char c ) -> bool { - static std::string chars = " \t\n\r"; - return chars.find( c ) != std::string::npos; - } - inline auto isBreakableBefore( char c ) -> bool { - static std::string chars = "[({<|"; - return chars.find( c ) != std::string::npos; - } - inline auto isBreakableAfter( char c ) -> bool { - static std::string chars = "])}>.,:;*+-=&/\\"; - return chars.find( c ) != std::string::npos; - } - - class Columns; - - class Column { - std::vector<std::string> m_strings; - size_t m_width = CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH; - size_t m_indent = 0; - size_t m_initialIndent = std::string::npos; - - public: - class iterator { - friend Column; - - Column const& m_column; - size_t m_stringIndex = 0; - size_t m_pos = 0; - - size_t m_len = 0; - size_t m_end = 0; - bool m_suffix = false; - - iterator( Column const& column, size_t stringIndex ) - : m_column( column ), - m_stringIndex( stringIndex ) - {} - - auto line() const -> std::string const& { return m_column.m_strings[m_stringIndex]; } - - auto isBoundary( size_t at ) const -> bool { - assert( at > 0 ); - assert( at <= line().size() ); - - return at == line().size() || - ( isWhitespace( line()[at] ) && !isWhitespace( line()[at-1] ) ) || - isBreakableBefore( line()[at] ) || - isBreakableAfter( line()[at-1] ); - } - - void calcLength() { - assert( m_stringIndex < m_column.m_strings.size() ); - - m_suffix = false; - auto width = m_column.m_width-indent(); - m_end = m_pos; - while( m_end < line().size() && line()[m_end] != '\n' ) - ++m_end; - - if( m_end < m_pos + width ) { - m_len = m_end - m_pos; - } - else { - size_t len = width; - while (len > 0 && !isBoundary(m_pos + len)) - --len; - while (len > 0 && isWhitespace( line()[m_pos + len - 1] )) - --len; - - if (len > 0) { - m_len = len; - } else { - m_suffix = true; - m_len = width - 1; - } - } - } - - auto indent() const -> size_t { - auto initial = m_pos == 0 && m_stringIndex == 0 ? m_column.m_initialIndent : std::string::npos; - return initial == std::string::npos ? m_column.m_indent : initial; - } - - auto addIndentAndSuffix(std::string const &plain) const -> std::string { - return std::string( indent(), ' ' ) + (m_suffix ? plain + "-" : plain); - } - - public: - explicit iterator( Column const& column ) : m_column( column ) { - assert( m_column.m_width > m_column.m_indent ); - assert( m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent ); - calcLength(); - if( m_len == 0 ) - m_stringIndex++; // Empty string - } - - auto operator *() const -> std::string { - assert( m_stringIndex < m_column.m_strings.size() ); - assert( m_pos <= m_end ); - if( m_pos + m_column.m_width < m_end ) - return addIndentAndSuffix(line().substr(m_pos, m_len)); - else - return addIndentAndSuffix(line().substr(m_pos, m_end - m_pos)); - } - - auto operator ++() -> iterator& { - m_pos += m_len; - if( m_pos < line().size() && line()[m_pos] == '\n' ) - m_pos += 1; - else - while( m_pos < line().size() && isWhitespace( line()[m_pos] ) ) - ++m_pos; - - if( m_pos == line().size() ) { - m_pos = 0; - ++m_stringIndex; - } - if( m_stringIndex < m_column.m_strings.size() ) - calcLength(); - return *this; - } - auto operator ++(int) -> iterator { - iterator prev( *this ); - operator++(); - return prev; - } - - auto operator ==( iterator const& other ) const -> bool { - return - m_pos == other.m_pos && - m_stringIndex == other.m_stringIndex && - &m_column == &other.m_column; - } - auto operator !=( iterator const& other ) const -> bool { - return !operator==( other ); - } - }; - using const_iterator = iterator; - - explicit Column( std::string const& text ) { m_strings.push_back( text ); } - - auto width( size_t newWidth ) -> Column& { - assert( newWidth > 0 ); - m_width = newWidth; - return *this; - } - auto indent( size_t newIndent ) -> Column& { - m_indent = newIndent; - return *this; - } - auto initialIndent( size_t newIndent ) -> Column& { - m_initialIndent = newIndent; - return *this; - } - - auto width() const -> size_t { return m_width; } - auto begin() const -> iterator { return iterator( *this ); } - auto end() const -> iterator { return { *this, m_strings.size() }; } - - inline friend std::ostream& operator << ( std::ostream& os, Column const& col ) { - bool first = true; - for( auto line : col ) { - if( first ) - first = false; - else - os << "\n"; - os << line; - } - return os; - } - - auto operator + ( Column const& other ) -> Columns; - - auto toString() const -> std::string { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - }; - - class Spacer : public Column { - - public: - explicit Spacer( size_t spaceWidth ) : Column( "" ) { - width( spaceWidth ); - } - }; - - class Columns { - std::vector<Column> m_columns; - - public: - - class iterator { - friend Columns; - struct EndTag {}; - - std::vector<Column> const& m_columns; - std::vector<Column::iterator> m_iterators; - size_t m_activeIterators; - - iterator( Columns const& columns, EndTag ) - : m_columns( columns.m_columns ), - m_activeIterators( 0 ) - { - m_iterators.reserve( m_columns.size() ); +namespace Catch { +namespace clara { +namespace TextFlow { - for( auto const& col : m_columns ) - m_iterators.push_back( col.end() ); - } +inline auto isWhitespace(char c) -> bool { + static std::string chars = " \t\n\r"; + return chars.find(c) != std::string::npos; +} +inline auto isBreakableBefore(char c) -> bool { + static std::string chars = "[({<|"; + return chars.find(c) != std::string::npos; +} +inline auto isBreakableAfter(char c) -> bool { + static std::string chars = "])}>.,:;*+-=&/\\"; + return chars.find(c) != std::string::npos; +} - public: - explicit iterator( Columns const& columns ) - : m_columns( columns.m_columns ), - m_activeIterators( m_columns.size() ) - { - m_iterators.reserve( m_columns.size() ); +class Columns; - for( auto const& col : m_columns ) - m_iterators.push_back( col.begin() ); - } +class Column { + std::vector<std::string> m_strings; + size_t m_width = CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH; + size_t m_indent = 0; + size_t m_initialIndent = std::string::npos; - auto operator ==( iterator const& other ) const -> bool { - return m_iterators == other.m_iterators; - } - auto operator !=( iterator const& other ) const -> bool { - return m_iterators != other.m_iterators; - } - auto operator *() const -> std::string { - std::string row, padding; +public: + class iterator { + friend Column; + + Column const& m_column; + size_t m_stringIndex = 0; + size_t m_pos = 0; + + size_t m_len = 0; + size_t m_end = 0; + bool m_suffix = false; + + iterator(Column const& column, size_t stringIndex) + : m_column(column), + m_stringIndex(stringIndex) {} + + auto line() const -> std::string const& { return m_column.m_strings[m_stringIndex]; } + + auto isBoundary(size_t at) const -> bool { + assert(at > 0); + assert(at <= line().size()); + + return at == line().size() || + (isWhitespace(line()[at]) && !isWhitespace(line()[at - 1])) || + isBreakableBefore(line()[at]) || + isBreakableAfter(line()[at - 1]); + } + + void calcLength() { + assert(m_stringIndex < m_column.m_strings.size()); + + m_suffix = false; + auto width = m_column.m_width - indent(); + m_end = m_pos; + while (m_end < line().size() && line()[m_end] != '\n') + ++m_end; + + if (m_end < m_pos + width) { + m_len = m_end - m_pos; + } else { + size_t len = width; + while (len > 0 && !isBoundary(m_pos + len)) + --len; + while (len > 0 && isWhitespace(line()[m_pos + len - 1])) + --len; + + if (len > 0) { + m_len = len; + } else { + m_suffix = true; + m_len = width - 1; + } + } + } + + auto indent() const -> size_t { + auto initial = m_pos == 0 && m_stringIndex == 0 ? m_column.m_initialIndent : std::string::npos; + return initial == std::string::npos ? m_column.m_indent : initial; + } + + auto addIndentAndSuffix(std::string const &plain) const -> std::string { + return std::string(indent(), ' ') + (m_suffix ? plain + "-" : plain); + } + + public: + using difference_type = std::ptrdiff_t; + using value_type = std::string; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::forward_iterator_tag; + + explicit iterator(Column const& column) : m_column(column) { + assert(m_column.m_width > m_column.m_indent); + assert(m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent); + calcLength(); + if (m_len == 0) + m_stringIndex++; // Empty string + } + + auto operator *() const -> std::string { + assert(m_stringIndex < m_column.m_strings.size()); + assert(m_pos <= m_end); + return addIndentAndSuffix(line().substr(m_pos, m_len)); + } + + auto operator ++() -> iterator& { + m_pos += m_len; + if (m_pos < line().size() && line()[m_pos] == '\n') + m_pos += 1; + else + while (m_pos < line().size() && isWhitespace(line()[m_pos])) + ++m_pos; + + if (m_pos == line().size()) { + m_pos = 0; + ++m_stringIndex; + } + if (m_stringIndex < m_column.m_strings.size()) + calcLength(); + return *this; + } + auto operator ++(int) -> iterator { + iterator prev(*this); + operator++(); + return prev; + } + + auto operator ==(iterator const& other) const -> bool { + return + m_pos == other.m_pos && + m_stringIndex == other.m_stringIndex && + &m_column == &other.m_column; + } + auto operator !=(iterator const& other) const -> bool { + return !operator==(other); + } + }; + using const_iterator = iterator; + + explicit Column(std::string const& text) { m_strings.push_back(text); } + + auto width(size_t newWidth) -> Column& { + assert(newWidth > 0); + m_width = newWidth; + return *this; + } + auto indent(size_t newIndent) -> Column& { + m_indent = newIndent; + return *this; + } + auto initialIndent(size_t newIndent) -> Column& { + m_initialIndent = newIndent; + return *this; + } + + auto width() const -> size_t { return m_width; } + auto begin() const -> iterator { return iterator(*this); } + auto end() const -> iterator { return { *this, m_strings.size() }; } + + inline friend std::ostream& operator << (std::ostream& os, Column const& col) { + bool first = true; + for (auto line : col) { + if (first) + first = false; + else + os << "\n"; + os << line; + } + return os; + } + + auto operator + (Column const& other)->Columns; + + auto toString() const -> std::string { + std::ostringstream oss; + oss << *this; + return oss.str(); + } +}; - for( size_t i = 0; i < m_columns.size(); ++i ) { - auto width = m_columns[i].width(); - if( m_iterators[i] != m_columns[i].end() ) { - std::string col = *m_iterators[i]; - row += padding + col; - if( col.size() < width ) - padding = std::string( width - col.size(), ' ' ); - else - padding = ""; - } - else { - padding += std::string( width, ' ' ); - } - } - return row; - } - auto operator ++() -> iterator& { - for( size_t i = 0; i < m_columns.size(); ++i ) { - if (m_iterators[i] != m_columns[i].end()) - ++m_iterators[i]; - } - return *this; - } - auto operator ++(int) -> iterator { - iterator prev( *this ); - operator++(); - return prev; - } - }; - using const_iterator = iterator; +class Spacer : public Column { - auto begin() const -> iterator { return iterator( *this ); } - auto end() const -> iterator { return { *this, iterator::EndTag() }; } +public: + explicit Spacer(size_t spaceWidth) : Column("") { + width(spaceWidth); + } +}; - auto operator += ( Column const& col ) -> Columns& { - m_columns.push_back( col ); - return *this; - } - auto operator + ( Column const& col ) -> Columns { - Columns combined = *this; - combined += col; - return combined; - } +class Columns { + std::vector<Column> m_columns; - inline friend std::ostream& operator << ( std::ostream& os, Columns const& cols ) { +public: - bool first = true; - for( auto line : cols ) { - if( first ) - first = false; - else - os << "\n"; - os << line; - } - return os; - } + class iterator { + friend Columns; + struct EndTag {}; + + std::vector<Column> const& m_columns; + std::vector<Column::iterator> m_iterators; + size_t m_activeIterators; + + iterator(Columns const& columns, EndTag) + : m_columns(columns.m_columns), + m_activeIterators(0) { + m_iterators.reserve(m_columns.size()); + + for (auto const& col : m_columns) + m_iterators.push_back(col.end()); + } + + public: + using difference_type = std::ptrdiff_t; + using value_type = std::string; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::forward_iterator_tag; + + explicit iterator(Columns const& columns) + : m_columns(columns.m_columns), + m_activeIterators(m_columns.size()) { + m_iterators.reserve(m_columns.size()); + + for (auto const& col : m_columns) + m_iterators.push_back(col.begin()); + } + + auto operator ==(iterator const& other) const -> bool { + return m_iterators == other.m_iterators; + } + auto operator !=(iterator const& other) const -> bool { + return m_iterators != other.m_iterators; + } + auto operator *() const -> std::string { + std::string row, padding; + + for (size_t i = 0; i < m_columns.size(); ++i) { + auto width = m_columns[i].width(); + if (m_iterators[i] != m_columns[i].end()) { + std::string col = *m_iterators[i]; + row += padding + col; + if (col.size() < width) + padding = std::string(width - col.size(), ' '); + else + padding = ""; + } else { + padding += std::string(width, ' '); + } + } + return row; + } + auto operator ++() -> iterator& { + for (size_t i = 0; i < m_columns.size(); ++i) { + if (m_iterators[i] != m_columns[i].end()) + ++m_iterators[i]; + } + return *this; + } + auto operator ++(int) -> iterator { + iterator prev(*this); + operator++(); + return prev; + } + }; + using const_iterator = iterator; + + auto begin() const -> iterator { return iterator(*this); } + auto end() const -> iterator { return { *this, iterator::EndTag() }; } + + auto operator += (Column const& col) -> Columns& { + m_columns.push_back(col); + return *this; + } + auto operator + (Column const& col) -> Columns { + Columns combined = *this; + combined += col; + return combined; + } + + inline friend std::ostream& operator << (std::ostream& os, Columns const& cols) { + + bool first = true; + for (auto line : cols) { + if (first) + first = false; + else + os << "\n"; + os << line; + } + return os; + } + + auto toString() const -> std::string { + std::ostringstream oss; + oss << *this; + return oss.str(); + } +}; - auto toString() const -> std::string { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - }; +inline auto Column::operator + (Column const& other) -> Columns { + Columns cols; + cols += *this; + cols += other; + return cols; +} +} - inline auto Column::operator + ( Column const& other ) -> Columns { - Columns cols; - cols += *this; - cols += other; - return cols; - } -}}} // namespace Catch::clara::TextFlow +} +} // ----------- end of #include from clara_textflow.hpp ----------- // ........... back in clara.hpp +#include <string> #include <memory> #include <set> #include <algorithm> @@ -7119,6 +7132,18 @@ namespace Catch { return ParserResult::runtimeError( "Unrecognised verbosity, '" + verbosity + "'" ); return ParserResult::ok( ParseResultType::Matched ); }; + auto const setReporter = [&]( std::string const& reporter ) { + IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); + + auto lcReporter = toLower( reporter ); + auto result = factories.find( lcReporter ); + + if( factories.end() != result ) + config.reporterName = lcReporter; + else + return ParserResult::runtimeError( "Unrecognized reporter, '" + reporter + "'. Check available with --list-reporters" ); + return ParserResult::ok( ParseResultType::Matched ); + }; auto cli = ExeName( config.processName ) @@ -7144,7 +7169,7 @@ namespace Catch { | Opt( config.outputFilename, "filename" ) ["-o"]["--out"] ( "output filename" ) - | Opt( config.reporterName, "name" ) + | Opt( setReporter, "name" ) ["-r"]["--reporter"] ( "reporter to use (defaults to console)" ) | Opt( config.name, "name" ) @@ -8292,6 +8317,10 @@ namespace Catch { Catch::LeakDetector::LeakDetector() {} #endif + +Catch::LeakDetector::~LeakDetector() { + Catch::cleanUp(); +} // end catch_leak_detector.cpp // start catch_list.cpp @@ -8315,7 +8344,7 @@ namespace Catch { std::size_t listTags( Config const& config ); - std::size_t listReporters( Config const& /*config*/ ); + std::size_t listReporters(); Option<std::size_t> list( Config const& config ); @@ -8433,7 +8462,7 @@ namespace Catch { return tagCounts.size(); } - std::size_t listReporters( Config const& /*config*/ ) { + std::size_t listReporters() { Catch::cout() << "Available reporters:\n"; IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); std::size_t maxNameLen = 0; @@ -8464,7 +8493,7 @@ namespace Catch { if( config.listTags() ) listedCount = listedCount.valueOr(0) + listTags( config ); if( config.listReporters() ) - listedCount = listedCount.valueOr(0) + listReporters( config ); + listedCount = listedCount.valueOr(0) + listReporters(); return listedCount; } @@ -9930,13 +9959,22 @@ namespace Catch { void libIdentify(); int applyCommandLine( int argc, char const * const * argv ); + #if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE) + int applyCommandLine( int argc, wchar_t const * const * argv ); + #endif void useConfigData( ConfigData const& configData ); - int run( int argc, char* argv[] ); - #if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE) - int run( int argc, wchar_t* const argv[] ); - #endif + template<typename CharT> + int run(int argc, CharT const * const argv[]) { + if (m_startupExceptions) + return 1; + int returnCode = applyCommandLine(argc, argv); + if (returnCode == 0) + returnCode = run(); + return returnCode; + } + int run(); clara::Parser const& cli() const; @@ -10148,22 +10186,8 @@ namespace Catch { return 0; } - void Session::useConfigData( ConfigData const& configData ) { - m_configData = configData; - m_config.reset(); - } - - int Session::run( int argc, char* argv[] ) { - if( m_startupExceptions ) - return 1; - int returnCode = applyCommandLine( argc, argv ); - if( returnCode == 0 ) - returnCode = run(); - return returnCode; - } - #if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE) - int Session::run( int argc, wchar_t* const argv[] ) { + int Session::applyCommandLine( int argc, wchar_t const * const * argv ) { char **utf8Argv = new char *[ argc ]; @@ -10175,7 +10199,7 @@ namespace Catch { WideCharToMultiByte( CP_UTF8, 0, argv[i], -1, utf8Argv[i], bufSize, NULL, NULL ); } - int returnCode = run( argc, utf8Argv ); + int returnCode = applyCommandLine( argc, utf8Argv ); for ( int i = 0; i < argc; ++i ) delete [] utf8Argv[ i ]; @@ -10185,6 +10209,12 @@ namespace Catch { return returnCode; } #endif + + void Session::useConfigData( ConfigData const& configData ) { + m_configData = configData; + m_config.reset(); + } + int Session::run() { if( ( m_configData.waitForKeypress & WaitForKeypress::BeforeStart ) != 0 ) { Catch::cout() << "...waiting for enter/ return before starting" << std::endl; @@ -11686,7 +11716,7 @@ std::string StringMaker<bool>::convert(bool b) { return b ? "true" : "false"; } -std::string StringMaker<char>::convert(char value) { +std::string StringMaker<signed char>::convert(signed char value) { if (value == '\r') { return "'\\r'"; } else if (value == '\f') { @@ -11703,8 +11733,8 @@ std::string StringMaker<char>::convert(char value) { return chstr; } } -std::string StringMaker<signed char>::convert(signed char c) { - return ::Catch::Detail::stringify(static_cast<char>(c)); +std::string StringMaker<char>::convert(char c) { + return ::Catch::Detail::stringify(static_cast<signed char>(c)); } std::string StringMaker<unsigned char>::convert(unsigned char c) { return ::Catch::Detail::stringify(static_cast<char>(c)); @@ -11836,7 +11866,7 @@ namespace Catch { } Version const& libraryVersion() { - static Version version( 2, 4, 1, "", 0 ); + static Version version( 2, 4, 2, "", 0 ); return version; } @@ -13517,6 +13547,9 @@ namespace Catch { m_xml.startElement( "Catch" ); if( !m_config->name().empty() ) m_xml.writeAttribute( "name", m_config->name() ); + if( m_config->rngSeed() != 0 ) + m_xml.scopedElement( "Randomness" ) + .writeAttribute( "seed", m_config->rngSeed() ); } void XmlReporter::testGroupStarting( GroupInfo const& groupInfo ) { @@ -13792,6 +13825,14 @@ int main (int argc, char * const argv[]) { #define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE() +#if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE) +#define CATCH_STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__ , #__VA_ARGS__ ); CATCH_SUCCEED( #__VA_ARGS__ ) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); CATCH_SUCCEED( #__VA_ARGS__ ) +#else +#define CATCH_STATIC_REQUIRE( ... ) CATCH_REQUIRE( __VA_ARGS__ ) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) CATCH_REQUIRE_FALSE( __VA_ARGS__ ) +#endif + // "BDD-style" convenience wrappers #define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ ) #define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) @@ -13851,6 +13892,14 @@ int main (int argc, char * const argv[]) { #define SUCCEED( ... ) INTERNAL_CATCH_MSG( "SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) #define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE() +#if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE) +#define STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__, #__VA_ARGS__ ); SUCCEED( #__VA_ARGS__ ) +#define STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); SUCCEED( "!(" #__VA_ARGS__ ")" ) +#else +#define STATIC_REQUIRE( ... ) REQUIRE( __VA_ARGS__ ) +#define STATIC_REQUIRE_FALSE( ... ) REQUIRE_FALSE( __VA_ARGS__ ) +#endif + #endif #define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) @@ -13931,6 +13980,9 @@ using Catch::Detail::Approx; #define CATCH_THEN( desc ) #define CATCH_AND_THEN( desc ) +#define CATCH_STATIC_REQUIRE( ... ) (void)(0) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) (void)(0) + // If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required #else @@ -13980,6 +14032,9 @@ using Catch::Detail::Approx; #define SUCCEED( ... ) (void)(0) #define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) +#define STATIC_REQUIRE( ... ) (void)(0) +#define STATIC_REQUIRE_FALSE( ... ) (void)(0) + #endif #define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature ) diff --git a/packages/Catch2/test_package/conanfile.py b/packages/Catch2/test_package/conanfile.py index e8d50f9a8b4dbdcefd7930c60eca8cb5bb01bbd8..e63b2ce59e90f9443ac915761da5f83a188932fc 100644 --- a/packages/Catch2/test_package/conanfile.py +++ b/packages/Catch2/test_package/conanfile.py @@ -10,7 +10,7 @@ class CatchConanTest(ConanFile): settings = "os", "compiler", "arch", "build_type" username = getenv("CONAN_USERNAME", "philsquared") channel = getenv("CONAN_CHANNEL", "testing") - requires = "Catch/2.4.1@%s/%s" % (username, channel) + requires = "Catch/2.4.2@%s/%s" % (username, channel) def build(self): cmake = CMake(self) diff --git a/packages/Catch2/third_party/clara.hpp b/packages/Catch2/third_party/clara.hpp index 43568cee2af04eff93463e3b37135c7101f8a2fe..6be5a98b14b0b1f4ba555619f6f54658eed9ab25 100644 --- a/packages/Catch2/third_party/clara.hpp +++ b/packages/Catch2/third_party/clara.hpp @@ -5,7 +5,7 @@ // // See https://github.com/philsquared/Clara for more details -// Clara v1.1.4 +// Clara v1.1.5 #ifndef CLARA_HPP_INCLUDED #define CLARA_HPP_INCLUDED @@ -34,8 +34,8 @@ // // A single-header library for wrapping and laying out basic text, by Phil Nash // -// This work is licensed under the BSD 2-Clause license. -// See the accompanying LICENSE file, or the one at https://opensource.org/licenses/BSD-2-Clause +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // // This project is hosted at https://github.com/philsquared/textflowcpp @@ -142,6 +142,12 @@ namespace clara { namespace TextFlow { } public: + using difference_type = std::ptrdiff_t; + using value_type = std::string; + using pointer = value_type*; + using reference = value_type&; + using iterator_category = std::forward_iterator_tag; + explicit iterator( Column const& column ) : m_column( column ) { assert( m_column.m_width > m_column.m_indent ); assert( m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent ); @@ -153,10 +159,7 @@ namespace clara { namespace TextFlow { auto operator *() const -> std::string { assert( m_stringIndex < m_column.m_strings.size() ); assert( m_pos <= m_end ); - if( m_pos + m_column.m_width < m_end ) - return addIndentAndSuffix(line().substr(m_pos, m_len)); - else - return addIndentAndSuffix(line().substr(m_pos, m_end - m_pos)); + return addIndentAndSuffix(line().substr(m_pos, m_len)); } auto operator ++() -> iterator& { @@ -266,6 +269,12 @@ namespace clara { namespace TextFlow { } public: + using difference_type = std::ptrdiff_t; + using value_type = std::string; + using pointer = value_type*; + using reference = value_type&; + using iterator_category = std::forward_iterator_tag; + explicit iterator( Columns const& columns ) : m_columns( columns.m_columns ), m_activeIterators( m_columns.size() ) @@ -355,7 +364,7 @@ namespace clara { namespace TextFlow { cols += other; return cols; } -}} // namespace clara::TextFlow +}} #endif // CLARA_TEXTFLOW_HPP_INCLUDED