92 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
| /*
 | |
|  *  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
 |