|  | /* | 
|  | *  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 "catch_option.hpp" | 
|  |  | 
|  | #include <chrono> | 
|  | #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 std::vector<std::string> const& getTestsOrTags() const = 0; | 
|  | virtual RunTests::InWhatOrder runOrder() const = 0; | 
|  | virtual unsigned int rngSeed() const = 0; | 
|  | virtual UseColour::YesOrNo useColour() const = 0; | 
|  | virtual std::vector<std::string> const& getSectionsToRun() const = 0; | 
|  | virtual Verbosity verbosity() const = 0; | 
|  |  | 
|  | virtual bool benchmarkNoAnalysis() const = 0; | 
|  | virtual int benchmarkSamples() const = 0; | 
|  | virtual double benchmarkConfidenceInterval() const = 0; | 
|  | virtual unsigned int benchmarkResamples() const = 0; | 
|  | virtual std::chrono::milliseconds benchmarkWarmupTime() const = 0; | 
|  | }; | 
|  |  | 
|  | using IConfigPtr = std::shared_ptr<IConfig const>; | 
|  | } | 
|  |  | 
|  | #endif // TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED |