catch2/projects/SelfTest
Martin Hořeňovský 50cc14c94c
Rework StringRef interface and internals
Now it no longer tries to be this weird hybrid between an owning
and non-owning reference, and is only ever non-owning. This is also
reflected in its interface, for example `StringRef::isNullTerminated`
is now public, and `StringRef::c_str()` has the precondition that it
is true.

Overview of the changes:
* The `StringRef::m_data` member has been completely removed, as it
had no more uses.
* `StringRef::isSubstring()` has been made public and renamed to
`StringRef::isNullTerminated()`, so that the name reflects what the
method actually does.
* `StringRef::currentData()` has been renamed to `StringRef::data()`,
to be in line with common C++ containers and container-alikes.
* `StringRef::c_str()` will no longer silently make copies. It instead
has a precondition that `isNullTerminated()` is true.
* If the user needs a null-terminated string, they should use the
`std::string` conversion operator and call `c_str()` on the resulting
`std::string`.
* Some small optimizations in various places.
* Basic functionality is now `constexpr`.
2019-10-25 13:57:52 +02:00
..
Baselines Rework StringRef interface and internals 2019-10-25 13:57:52 +02:00
CompileTimePerfTests Added files for multiply inclusions of test cases 2017-11-17 15:46:57 +00:00
IntrospectiveTests Rework StringRef interface and internals 2019-10-25 13:57:52 +02:00
Misc Add more tests for reading test specs from file 2019-10-20 15:14:50 +02:00
SurrogateCpps Sweep out some extra warnings 2017-09-07 17:25:15 +02:00
UsageTests Use scientific notation for the WithinULP matcher 2019-10-20 12:30:21 +02:00
TestMain.cpp Remove unnecessary semicolons 2018-02-05 10:03:51 +01:00
WarnAboutNoTests.cmake Improve reporting of unmatched filters (#1684) 2019-08-06 20:51:19 +02:00