123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- /*
- * Created by Phil on 08/11/2010.
- * Copyright 2010 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_CONFIG_HPP_INCLUDED
- #define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
- #include "catch_test_spec_parser.h"
- #include "catch_interfaces_config.h"
- // Libstdc++ doesn't like incomplete classes for unique_ptr
- #include "catch_stream.h"
- #include <memory>
- #include <vector>
- #include <string>
- #ifndef CATCH_CONFIG_CONSOLE_WIDTH
- #define CATCH_CONFIG_CONSOLE_WIDTH 80
- #endif
- namespace Catch {
- struct IStream;
- struct ConfigData {
- bool listTests = false;
- bool listTags = false;
- bool listReporters = false;
- bool listTestNamesOnly = false;
- bool showSuccessfulTests = false;
- bool shouldDebugBreak = false;
- bool noThrow = false;
- bool showHelp = false;
- bool showInvisibles = false;
- bool filenamesAsTags = false;
- bool libIdentify = false;
- int abortAfter = -1;
- unsigned int rngSeed = 0;
- bool benchmarkNoAnalysis = false;
- unsigned int benchmarkSamples = 100;
- double benchmarkConfidenceInterval = 0.95;
- unsigned int benchmarkResamples = 100000;
- std::chrono::milliseconds::rep benchmarkWarmupTime = 100;
- Verbosity verbosity = Verbosity::Normal;
- WarnAbout::What warnings = WarnAbout::Nothing;
- ShowDurations::OrNot showDurations = ShowDurations::DefaultForReporter;
- double minDuration = -1;
- RunTests::InWhatOrder runOrder = RunTests::InDeclarationOrder;
- UseColour::YesOrNo useColour = UseColour::Auto;
- WaitForKeypress::When waitForKeypress = WaitForKeypress::Never;
- std::string outputFilename;
- std::string name;
- std::string processName;
- #ifndef CATCH_CONFIG_DEFAULT_REPORTER
- #define CATCH_CONFIG_DEFAULT_REPORTER "console"
- #endif
- std::string reporterName = CATCH_CONFIG_DEFAULT_REPORTER;
- #undef CATCH_CONFIG_DEFAULT_REPORTER
- std::vector<std::string> testsOrTags;
- std::vector<std::string> sectionsToRun;
- };
- class Config : public IConfig {
- public:
- Config() = default;
- Config( ConfigData const& data );
- virtual ~Config() = default;
- std::string const& getFilename() const;
- bool listTests() const;
- bool listTestNamesOnly() const;
- bool listTags() const;
- bool listReporters() const;
- std::string getProcessName() const;
- std::string const& getReporterName() const;
- std::vector<std::string> const& getTestsOrTags() const override;
- std::vector<std::string> const& getSectionsToRun() const override;
- TestSpec const& testSpec() const override;
- bool hasTestFilters() const override;
- bool showHelp() const;
- // IConfig interface
- bool allowThrows() const override;
- std::ostream& stream() const override;
- std::string name() const override;
- bool includeSuccessfulResults() const override;
- bool warnAboutMissingAssertions() const override;
- bool warnAboutNoTests() const override;
- ShowDurations::OrNot showDurations() const override;
- double minDuration() const override;
- RunTests::InWhatOrder runOrder() const override;
- unsigned int rngSeed() const override;
- UseColour::YesOrNo useColour() const override;
- bool shouldDebugBreak() const override;
- int abortAfter() const override;
- bool showInvisibles() const override;
- Verbosity verbosity() const override;
- bool benchmarkNoAnalysis() const override;
- int benchmarkSamples() const override;
- double benchmarkConfidenceInterval() const override;
- unsigned int benchmarkResamples() const override;
- std::chrono::milliseconds benchmarkWarmupTime() const override;
- private:
- IStream const* openStream();
- ConfigData m_data;
- std::unique_ptr<IStream const> m_stream;
- TestSpec m_testSpec;
- bool m_hasTestFilters = false;
- };
- } // end namespace Catch
- #endif // TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
|