2012-06-05 21:50:47 +02:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
|
2017-04-25 22:51:44 +02:00
|
|
|
#include "catch_common.h"
|
|
|
|
|
2017-02-12 13:34:55 +01:00
|
|
|
#include <iosfwd>
|
2013-05-28 19:39:32 +02:00
|
|
|
#include <string>
|
2014-04-15 19:44:37 +02:00
|
|
|
#include <vector>
|
2017-04-25 22:51:44 +02:00
|
|
|
#include <memory>
|
2013-05-28 19:39:32 +02:00
|
|
|
|
2012-06-05 21:50:47 +02:00
|
|
|
namespace Catch {
|
|
|
|
|
2017-06-20 21:14:38 +02:00
|
|
|
enum class Verbosity {
|
|
|
|
Quiet = 0,
|
|
|
|
Normal,
|
|
|
|
High
|
|
|
|
};
|
2013-08-07 19:56:35 +02:00
|
|
|
|
|
|
|
struct WarnAbout { enum What {
|
|
|
|
Nothing = 0x00,
|
2018-02-09 00:31:19 +01:00
|
|
|
NoAssertions = 0x01,
|
|
|
|
NoTests = 0x02
|
2013-08-07 19:56:35 +02:00
|
|
|
}; };
|
|
|
|
|
|
|
|
struct ShowDurations { enum OrNot {
|
|
|
|
DefaultForReporter,
|
|
|
|
Always,
|
|
|
|
Never
|
|
|
|
}; };
|
2014-09-15 19:39:31 +02:00
|
|
|
struct RunTests { enum InWhatOrder {
|
|
|
|
InDeclarationOrder,
|
|
|
|
InLexicographicalOrder,
|
|
|
|
InRandomOrder
|
|
|
|
}; };
|
2016-02-24 19:51:01 +01:00
|
|
|
struct UseColour { enum YesOrNo {
|
|
|
|
Auto,
|
|
|
|
Yes,
|
|
|
|
No
|
2017-01-26 23:13:12 +01:00
|
|
|
}; };
|
2017-08-11 20:55:55 +02:00
|
|
|
struct WaitForKeypress { enum When {
|
|
|
|
Never,
|
|
|
|
BeforeStart = 1,
|
|
|
|
BeforeExit = 2,
|
|
|
|
BeforeStartAndExit = BeforeStart | BeforeExit
|
|
|
|
}; };
|
2013-08-07 19:56:35 +02:00
|
|
|
|
2014-05-16 19:24:07 +02:00
|
|
|
class TestSpec;
|
2014-04-15 19:44:37 +02:00
|
|
|
|
2017-04-25 21:18:02 +02:00
|
|
|
struct IConfig : NonCopyable {
|
2013-07-03 20:14:59 +02:00
|
|
|
|
2012-08-13 08:46:10 +02:00
|
|
|
virtual ~IConfig();
|
2013-07-03 20:14:59 +02:00
|
|
|
|
2012-06-05 21:50:47 +02:00
|
|
|
virtual bool allowThrows() const = 0;
|
2013-05-28 19:39:32 +02:00
|
|
|
virtual std::ostream& stream() const = 0;
|
|
|
|
virtual std::string name() const = 0;
|
|
|
|
virtual bool includeSuccessfulResults() const = 0;
|
2013-05-28 19:51:53 +02:00
|
|
|
virtual bool shouldDebugBreak() const = 0;
|
2013-05-28 19:39:32 +02:00
|
|
|
virtual bool warnAboutMissingAssertions() const = 0;
|
2018-02-09 00:31:19 +01:00
|
|
|
virtual bool warnAboutNoTests() const = 0;
|
2013-05-28 19:51:53 +02:00
|
|
|
virtual int abortAfter() const = 0;
|
2014-04-22 19:23:42 +02:00
|
|
|
virtual bool showInvisibles() const = 0;
|
2013-08-07 19:56:35 +02:00
|
|
|
virtual ShowDurations::OrNot showDurations() const = 0;
|
2014-05-16 19:24:07 +02:00
|
|
|
virtual TestSpec const& testSpec() const = 0;
|
2014-09-15 19:39:31 +02:00
|
|
|
virtual RunTests::InWhatOrder runOrder() const = 0;
|
|
|
|
virtual unsigned int rngSeed() const = 0;
|
2017-08-09 23:26:17 +02:00
|
|
|
virtual int benchmarkResolutionMultiple() const = 0;
|
2016-02-24 19:51:01 +01:00
|
|
|
virtual UseColour::YesOrNo useColour() const = 0;
|
2017-01-12 18:10:38 +01:00
|
|
|
virtual std::vector<std::string> const& getSectionsToRun() const = 0;
|
2017-07-06 00:25:49 +02:00
|
|
|
virtual Verbosity verbosity() const = 0;
|
2012-06-05 21:50:47 +02:00
|
|
|
};
|
2017-04-25 21:18:02 +02:00
|
|
|
|
|
|
|
using IConfigPtr = std::shared_ptr<IConfig const>;
|
2012-06-05 21:50:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif // TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
|