struct -> class normalization for various interface types

This commit is contained in:
Martin Hořeňovský 2022-04-11 00:00:19 +02:00
parent 1a56ba851b
commit 8cdaebe964
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
23 changed files with 66 additions and 53 deletions

View File

@ -42,7 +42,7 @@ namespace Catch {
friend bool operator==( Tag const& lhs, Tag const& rhs );
};
struct ITestInvoker;
class ITestInvoker;
enum class TestCaseProperties : uint8_t {
None = 0,

View File

@ -21,7 +21,7 @@
namespace Catch {
struct IConfig;
class IConfig;
struct TestCaseInfo;
class TestCaseHandle;

View File

@ -29,7 +29,8 @@ namespace Detail {
} // end namespace detail
template<typename T>
struct IGenerator : GeneratorUntypedBase {
class IGenerator : public GeneratorUntypedBase {
public:
~IGenerator() override = default;
IGenerator() = default;
IGenerator(IGenerator const&) = default;

View File

@ -26,15 +26,15 @@ namespace Catch {
struct AssertionReaction;
struct SourceLineInfo;
struct ITransientExpression;
struct IGeneratorTracker;
class ITransientExpression;
class IGeneratorTracker;
struct BenchmarkInfo;
template <typename Duration = std::chrono::duration<double, std::nano>>
struct BenchmarkStats;
struct IResultCapture {
class IResultCapture {
public:
virtual ~IResultCapture();
virtual bool sectionStarted( SectionInfo const& sectionInfo,

View File

@ -62,8 +62,8 @@ namespace Catch {
class TestSpec;
class IStream;
struct IConfig : Detail::NonCopyable {
class IConfig : public Detail::NonCopyable {
public:
virtual ~IConfig();
virtual bool allowThrows() const = 0;

View File

@ -25,7 +25,8 @@ namespace Catch {
};
} // namespace Detail
struct IMutableEnumValuesRegistry {
class IMutableEnumValuesRegistry {
public:
virtual ~IMutableEnumValuesRegistry(); // = default;
virtual Detail::EnumInfo const& registerEnum( StringRef enumName, StringRef allEnums, std::vector<int> const& values ) = 0;

View File

@ -17,17 +17,18 @@
namespace Catch {
using exceptionTranslateFunction = std::string(*)();
struct IExceptionTranslator;
class IExceptionTranslator;
using ExceptionTranslators = std::vector<Detail::unique_ptr<IExceptionTranslator const>>;
struct IExceptionTranslator {
class IExceptionTranslator {
public:
virtual ~IExceptionTranslator(); // = default
virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
};
struct IExceptionTranslatorRegistry {
class IExceptionTranslatorRegistry {
public:
virtual ~IExceptionTranslatorRegistry(); // = default
virtual std::string translateActiveException() const = 0;
};

View File

@ -33,7 +33,8 @@ namespace Catch {
} // namespace Generators
struct IGeneratorTracker {
class IGeneratorTracker {
public:
virtual ~IGeneratorTracker(); // = default;
virtual auto hasGenerator() const -> bool = 0;
virtual auto getGenerator() const -> Generators::GeneratorBasePtr const& = 0;

View File

@ -16,14 +16,14 @@ namespace Catch {
class TestCaseHandle;
struct TestCaseInfo;
struct ITestCaseRegistry;
struct IExceptionTranslatorRegistry;
struct IExceptionTranslator;
struct IReporterRegistry;
struct IReporterFactory;
struct ITagAliasRegistry;
struct ITestInvoker;
struct IMutableEnumValuesRegistry;
class ITestCaseRegistry;
class IExceptionTranslatorRegistry;
class IExceptionTranslator;
class IReporterRegistry;
class IReporterFactory;
class ITagAliasRegistry;
class ITestInvoker;
class IMutableEnumValuesRegistry;
struct SourceLineInfo;
class StartupExceptionRegistry;
@ -31,7 +31,8 @@ namespace Catch {
using IReporterFactoryPtr = Detail::unique_ptr<IReporterFactory>;
struct IRegistryHub {
class IRegistryHub {
public:
virtual ~IRegistryHub(); // = default
virtual IReporterRegistry const& getReporterRegistry() const = 0;
@ -43,7 +44,8 @@ namespace Catch {
virtual StartupExceptionRegistry const& getStartupExceptionRegistry() const = 0;
};
struct IMutableRegistryHub {
class IMutableRegistryHub {
public:
virtual ~IMutableRegistryHub(); // = default
virtual void registerReporter( std::string const& name, IReporterFactoryPtr factory ) = 0;
virtual void registerListener( Detail::unique_ptr<EventListenerFactory> factory ) = 0;

View File

@ -30,7 +30,7 @@ namespace Catch {
struct TagInfo;
struct TestCaseInfo;
class TestCaseHandle;
struct IConfig;
class IConfig;
class IStream;
enum class ColourMode : std::uint8_t;

View File

@ -15,12 +15,13 @@
namespace Catch {
struct ReporterConfig;
struct IConfig;
class IConfig;
class IEventListener;
using IEventListenerPtr = Detail::unique_ptr<IEventListener>;
struct IReporterFactory {
class IReporterFactory {
public:
virtual ~IReporterFactory(); // = default
virtual IEventListenerPtr

View File

@ -17,16 +17,17 @@
namespace Catch {
struct IConfig;
class IConfig;
class IEventListener;
using IEventListenerPtr = Detail::unique_ptr<IEventListener>;
struct IReporterFactory;
class IReporterFactory;
using IReporterFactoryPtr = Detail::unique_ptr<IReporterFactory>;
struct ReporterConfig;
class EventListenerFactory;
struct IReporterRegistry {
class IReporterRegistry {
public:
using FactoryMap = std::map<std::string, IReporterFactoryPtr, Detail::CaseInsensitiveLess>;
using Listeners = std::vector<Detail::unique_ptr<EventListenerFactory>>;

View File

@ -14,7 +14,8 @@ namespace Catch {
struct TagAlias;
struct ITagAliasRegistry {
class ITagAliasRegistry {
public:
virtual ~ITagAliasRegistry(); // = default
// Nullptr if not present
virtual TagAlias const* find( std::string const& alias ) const = 0;

View File

@ -15,15 +15,17 @@ namespace Catch {
class TestSpec;
struct TestCaseInfo;
struct ITestInvoker {
class ITestInvoker {
public:
virtual void invoke () const = 0;
virtual ~ITestInvoker(); // = default
};
class TestCaseHandle;
struct IConfig;
class IConfig;
struct ITestCaseRegistry {
class ITestCaseRegistry {
public:
virtual ~ITestCaseRegistry(); // = default
// TODO: this exists only for adding filenames to test cases -- let's expose this in a saner way later
virtual std::vector<TestCaseInfo* > const& getAllInfos() const = 0;

View File

@ -16,7 +16,7 @@
namespace Catch {
struct AssertionResultData;
struct IResultCapture;
class IResultCapture;
class RunContext;
struct AssertionReaction {

View File

@ -16,7 +16,7 @@
namespace Catch {
enum class ColourMode : std::uint8_t;
struct IConfig;
class IConfig;
class IStream;
struct Colour {

View File

@ -10,19 +10,19 @@
namespace Catch {
struct IResultCapture;
struct IConfig;
class IResultCapture;
class IConfig;
struct IContext
{
class IContext {
public:
virtual ~IContext(); // = default
virtual IResultCapture* getResultCapture() = 0;
virtual IConfig const* getConfig() const = 0;
};
struct IMutableContext : IContext
{
class IMutableContext : public IContext {
public:
virtual ~IMutableContext(); // = default
virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
virtual void setConfig( IConfig const* config ) = 0;

View File

@ -33,7 +33,11 @@
namespace Catch {
struct ITransientExpression {
class ITransientExpression {
bool m_isBinaryExpression;
bool m_result;
public:
auto isBinaryExpression() const -> bool { return m_isBinaryExpression; }
auto getResult() const -> bool { return m_result; }
virtual void streamReconstructedExpression( std::ostream &os ) const = 0;
@ -51,8 +55,6 @@ namespace Catch {
// complain if it's not here :-(
virtual ~ITransientExpression(); // = default;
bool m_isBinaryExpression;
bool m_result;
friend std::ostream& operator<<(std::ostream& out, ITransientExpression const& expr) {
expr.streamReconstructedExpression(out);
return out;

View File

@ -12,7 +12,7 @@
namespace Catch {
struct ITransientExpression;
class ITransientExpression;
class LazyExpression {
friend class AssertionHandler;

View File

@ -24,9 +24,9 @@
namespace Catch {
struct IMutableContext;
struct IGeneratorTracker;
struct IConfig;
class IMutableContext;
class IGeneratorTracker;
class IConfig;
///////////////////////////////////////////////////////////////////////////

View File

@ -16,7 +16,7 @@
namespace Catch {
class TestCaseHandle;
struct IConfig;
class IConfig;
class TestSpec;
std::vector<TestCaseHandle> sortTests( IConfig const& config, std::vector<TestCaseHandle> const& unsortedTestCases );

View File

@ -20,7 +20,7 @@
namespace Catch {
struct ITagAliasRegistry;
class ITagAliasRegistry;
class TestSpecParser {
enum Mode{ None, Name, QuotedName, Tag, EscapedName };

View File

@ -17,7 +17,7 @@
namespace Catch {
struct IConfig;
class IConfig;
class TestCaseHandle;
class ColourImpl;