| /* |
| * Created by Phil on 05/06/2012. |
| * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. |
| * |
| * Distributed under the Boost Software License, Version 1.0. (See accompanying |
| * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| */ |
| #ifndef TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED |
| #define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED |
| |
| #include "catch_common.h" |
| |
| #include <iosfwd> |
| #include <string> |
| #include <vector> |
| #include <memory> |
| |
| namespace Catch { |
| |
| enum class Verbosity { |
| Quiet = 0, |
| Normal, |
| High |
| }; |
| |
| struct WarnAbout { enum What { |
| Nothing = 0x00, |
| NoAssertions = 0x01, |
| NoTests = 0x02 |
| }; }; |
| |
| struct ShowDurations { enum OrNot { |
| DefaultForReporter, |
| Always, |
| Never |
| }; }; |
| struct RunTests { enum InWhatOrder { |
| InDeclarationOrder, |
| InLexicographicalOrder, |
| InRandomOrder |
| }; }; |
| struct UseColour { enum YesOrNo { |
| Auto, |
| Yes, |
| No |
| }; }; |
| struct WaitForKeypress { enum When { |
| Never, |
| BeforeStart = 1, |
| BeforeExit = 2, |
| BeforeStartAndExit = BeforeStart | BeforeExit |
| }; }; |
| |
| class TestSpec; |
| |
| struct IConfig : NonCopyable { |
| |
| virtual ~IConfig(); |
| |
| virtual bool allowThrows() const = 0; |
| virtual std::ostream& stream() const = 0; |
| virtual std::string name() const = 0; |
| virtual bool includeSuccessfulResults() const = 0; |
| virtual bool shouldDebugBreak() const = 0; |
| virtual bool warnAboutMissingAssertions() const = 0; |
| virtual bool warnAboutNoTests() const = 0; |
| virtual int abortAfter() const = 0; |
| virtual bool showInvisibles() const = 0; |
| virtual ShowDurations::OrNot showDurations() const = 0; |
| virtual TestSpec const& testSpec() const = 0; |
| virtual bool hasTestFilters() const = 0; |
| virtual RunTests::InWhatOrder runOrder() const = 0; |
| virtual unsigned int rngSeed() const = 0; |
| virtual int benchmarkResolutionMultiple() const = 0; |
| virtual UseColour::YesOrNo useColour() const = 0; |
| virtual std::vector<std::string> const& getSectionsToRun() const = 0; |
| virtual Verbosity verbosity() const = 0; |
| }; |
| |
| using IConfigPtr = std::shared_ptr<IConfig const>; |
| } |
| |
| #endif // TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED |