Lines Matching defs:string

157 // like `std::string::~string` being called on an uninitialized value.
161 // REQUIRE(std::string("12") + "34" == "1234")
478 #include <string>
536 std::string operator+() const;
598 #include <string>
604 /// A non-owning string class (similar to the forthcoming std::string_view)
605 /// Note that, because a StringRef may be a substring of another string,
628 StringRef( std::string const& stdString ) noexcept
633 explicit operator std::string() const {
634 return std::string(m_start, m_size);
678 auto operator += ( std::string& lhs, StringRef const& sr ) -> std::string&;
1105 (void)expander{(reg_test(Types{}, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++)... };/* NOLINT */ \
1151 (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFuncName<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++)... };/* NOLINT */\
1195 (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFunc<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++)... };/* NOLINT */\
1229 (void)expander{(reg_test(Types{}, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++)... };/* NOLINT */ \
1278 (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++)... };/* NOLINT */ \
1325 (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++)... };/* NOLINT */ \
1419 #include <string>
1448 auto str() const -> std::string;
1555 extern const std::string unprintableString;
1557 std::string rawMemoryToString( const void *object, std::size_t size );
1560 std::string rawMemoryToString( const T& object ) {
1578 std::string convertUnknownEnumToString( E e );
1583 std::string>::type convertUnstreamable( T const& ) {
1589 std::string>::type convertUnstreamable(T const& ex) {
1596 , std::string>::type convertUnstreamable( T const& value ) {
1601 //! Convert a CLR string to a utf8 std::string
1603 std::string clrReferenceToString( T^ ref ) {
1605 return std::string("null");
1608 return std::string(reinterpret_cast<char const *>(p), bytes->Length);
1619 typename std::enable_if<::Catch::Detail::IsStreamInsertable<Fake>::value, std::string>::type
1630 typename std::enable_if<!::Catch::Detail::IsStreamInsertable<Fake>::value, std::string>::type
1645 std::string stringify(const T& e) {
1650 std::string convertUnknownEnumToString( E e ) {
1656 std::string stringify( T^ e ) {
1666 struct StringMaker<std::string> {
1667 static std::string convert(const std::string& str);
1673 static std::string convert(std::string_view str);
1679 static std::string convert(char const * str);
1683 static std::string convert(char * str);
1689 static std::string convert(const std::wstring& wstr);
1695 static std::string convert(std::wstring_view str);
1701 static std::string convert(wchar_t const * str);
1705 static std::string convert(wchar_t * str);
1710 // while keeping string semantics?
1713 static std::string convert(char const* str) {
1714 return ::Catch::Detail::stringify(std::string{ str });
1719 static std::string convert(signed char const* str) {
1720 return ::Catch::Detail::stringify(std::string{ reinterpret_cast<char const *>(str) });
1725 static std::string convert(unsigned char const* str) {
1726 return ::Catch::Detail::stringify(std::string{ reinterpret_cast<char const *>(str) });
1733 static std::string convert(std::byte value);
1738 static std::string convert(int value);
1742 static std::string convert(long value);
1746 static std::string convert(long long value);
1750 static std::string convert(unsigned int value);
1754 static std::string convert(unsigned long value);
1758 static std::string convert(unsigned long long value);
1763 static std::string convert(bool b);
1768 static std::string convert(char c);
1772 static std::string convert(signed char c);
1776 static std::string convert(unsigned char c);
1781 static std::string convert(std::nullptr_t);
1786 static std::string convert(float value);
1792 static std::string convert(double value);
1799 static std::string convert(U* p) {
1810 static std::string convert(R C::* p) {
1822 static std::string convert( T^ ref ) {
1830 std::string rangeToString(InputIterator first, Sentinel last) {
1846 static std::string convert(NSString * nsstring) {
1849 return std::string("@") + [nsstring UTF8String];
1854 static std::string convert(NSObject* nsObject) {
1860 inline std::string stringify( NSString* nsstring ) {
1887 static std::string convert(const std::pair<T1, T2>& pair) {
1905 static std::string convert(const std::optional<T>& optional) {
1948 static std::string convert(const std::tuple<Types...>& tuple) {
1964 static std::string convert(const std::monostate&) {
1971 static std::string convert(const std::variant<Elements...>& variant) {
2019 std::string rangeToString( Range const& range ) {
2025 std::string rangeToString( std::vector<bool, Allocator> const& v ) {
2042 static std::string convert( R const& range ) {
2049 static std::string convert(T const(&arr)[SZ]) {
2066 static std::string symbol();
2070 std::string ratio_string<Ratio>::symbol() {
2078 static std::string symbol();
2082 static std::string symbol();
2086 static std::string symbol();
2090 static std::string symbol();
2094 static std::string symbol();
2098 static std::string symbol();
2105 static std::string convert(std::chrono::duration<Value, Ratio> const& duration) {
2113 static std::string convert(std::chrono::duration<Value, std::ratio<1>> const& duration) {
2121 static std::string convert(std::chrono::duration<Value, std::ratio<60>> const& duration) {
2129 static std::string convert(std::chrono::duration<Value, std::ratio<3600>> const& duration) {
2141 static std::string convert(std::chrono::time_point<Clock, Duration> const& time_point) {
2148 static std::string convert(std::chrono::time_point<std::chrono::system_clock, Duration> const& time_point) {
2167 return std::string(timeStamp);
2176 static std::string convert( enumName value ) { \
2178 return static_cast<std::string>(enumInfo.lookup( static_cast<int>( value ) )); \
2222 void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs );
2435 #include <string>
2471 virtual void benchmarkPreparing( std::string const& name ) = 0;
2474 virtual void benchmarkFailed( std::string const& error ) = 0;
2498 std::string const& message,
2511 virtual std::string getCurrentTestName() const = 0;
2588 void handleExceptionMatchExpr( AssertionHandler& handler, std::string const& str, StringRef const& matcherString );
2595 #include <string>
2606 std::string message;
2661 void captureValue( size_t index, std::string const& value );
2800 // Although this is matcher-based, it can be used with just a string
2857 #include <string>
2864 std::string const& _name );
2869 std::string const& _name,
2870 std::string const& ) : SectionInfo( _lineInfo, _name ) {}
2872 std::string name;
2873 std::string description; // !Deprecated: this will always be empty
2908 #include <string>
2923 std::string m_name;
2948 #include <string>
2979 virtual void registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) = 0;
2983 virtual void registerTagAlias( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) = 0;
2991 std::string translateActiveException();
2998 static std::string translatorName( signature )
3002 #include <string>
3006 using exceptionTranslateFunction = std::string(*)();
3013 virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
3019 virtual std::string translateActiveException() const = 0;
3027 ExceptionTranslator( std::string(*translateFunction)( T& ) )
3031 std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const override {
3048 std::string(*m_translateFunction)( T& );
3053 ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
3062 static std::string translatorName( signature ); \
3067 static std::string translatorName( signature )
3170 std::string toString() const;
3187 static std::string convert(Catch::Detail::Approx const& value);
3195 #include <string>
3201 bool startsWith( std::string const& s, std::string const& prefix );
3202 bool startsWith( std::string const& s, char prefix );
3203 bool endsWith( std::string const& s, std::string const& suffix );
3204 bool endsWith( std::string const& s, char suffix );
3205 bool contains( std::string const& s, std::string const& infix );
3206 void toLowerInPlace( std::string& s );
3207 std::string toLower( std::string const& s );
3208 //! Returns a new string without whitespace at the start/end
3209 std::string trim( std::string const& str );
3213 // !!! Be aware, returns refs into original string - make sure original string outlives them
3215 bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
3218 pluralise( std::size_t count, std::string const& label );
3223 std::string m_label;
3233 #include <string>
3249 std::string toString() const;
3253 virtual std::string describe() const = 0;
3254 mutable std::string m_cachedToString;
3297 std::string describe() const override {
3298 std::string description;
3331 std::string describe() const override {
3332 std::string description;
3365 std::string describe() const override {
3401 std::string m_message;
3404 ExceptionMessageMatcher(std::string const& message):
3410 std::string describe() const override;
3415 Exception::ExceptionMessageMatcher Message(std::string const& message);
3433 std::string describe() const override;
3442 std::string describe() const override;
3458 std::string describe() const override;
3485 #include <string>
3492 std::string finalizeDescription(const std::string& desc);
3498 std::string m_description;
3501 PredicateMatcher(std::function<bool(T const&)> const& elem, std::string const& descr)
3510 std::string describe() const override {
3522 Generic::PredicateMatcher<T> Predicate(std::function<bool(T const&)> const& predicate, std::string const& description = "") {
3532 #include <string>
3541 CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity );
3542 std::string adjustString( std::string const& str ) const;
3543 std::string caseSensitivitySuffix() const;
3546 std::string m_str;
3549 struct StringMatcherBase : MatcherBase<std::string> {
3550 StringMatcherBase( std::string const& operation, CasedString const& comparator );
3551 std::string describe() const override;
3554 std::string m_operation;
3559 bool match( std::string const& source ) const override;
3563 bool match( std::string const& source ) const override;
3567 bool match( std::string const& source ) const override;
3571 bool match( std::string const& source ) const override;
3574 struct RegexMatcher : MatcherBase<std::string> {
3575 RegexMatcher( std::string regex, CaseSensitive::Choice caseSensitivity );
3576 bool match( std::string const& matchee ) const override;
3577 std::string describe() const override;
3580 std::string m_regex;
3589 StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
3590 StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
3591 StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
3592 StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
3593 StdString::RegexMatcher Matches( std::string const& regex, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
3621 std::string describe() const override {
3651 std::string describe() const override {
3675 std::string describe() const override {
3694 std::string describe() const override {
3727 std::string describe() const override {
3793 using StringMatcher = Matchers::Impl::MatcherBase<std::string>;
3887 void throw_logic_error(std::string const& msg);
3889 void throw_domain_error(std::string const& msg);
3891 void throw_runtime_error(std::string const& msg);
4471 #include <string>
4519 virtual std::string name() const = 0;
4530 virtual std::vector<std::string> const& getTestsOrTags() const = 0;
4534 virtual std::vector<std::string> const& getSectionsToRun() const = 0;
4760 #include <string>
4784 TestCaseInfo( std::string const& _name,
4785 std::string const& _className,
4786 std::string const& _description,
4787 std::vector<std::string> const& _tags,
4790 friend void setTags( TestCaseInfo& testCaseInfo, std::vector<std::string> tags );
4797 std::string tagsAsString() const;
4799 std::string name;
4800 std::string className;
4801 std::string description;
4802 std::vector<std::string> tags;
4803 std::vector<std::string> lcaseTags;
4813 TestCase withName( std::string const& _newName ) const;
4827 std::string const& className,
4854 #include <string>
4897 inline std::string getAnnotation( Class cls,
4898 std::string const& annotationName,
4899 std::string const& testCaseName ) {
4924 std::string methodName = sel_getName(selector);
4926 std::string testCaseName = methodName.substr( 15 );
4927 std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
4928 std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
4969 std::string describe() const override {
4970 return "equals string: " + Catch::Detail::stringify( m_substr );
4982 std::string describe() const override {
4983 return "contains string: " + Catch::Detail::stringify( m_substr );
4995 std::string describe() const override {
5007 std::string describe() const override {
5091 WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity );
5093 virtual bool matches( std::string const& str ) const;
5096 std::string normaliseString( std::string const& str ) const;
5099 std::string m_pattern;
5104 #include <string>
5115 explicit Pattern( std::string const& name );
5118 std::string const& name() const;
5120 std::string const m_name;
5126 explicit NamePattern( std::string const& name, std::string const& filterString );
5134 explicit TagPattern( std::string const& tag, std::string const& filterString );
5137 std::string m_tag;
5152 std::string name() const;
5157 std::string name;
5161 using vectorStrings = std::vector<std::string>;
5170 std::vector<std::string> m_invalidArgs;
5182 #include <string>
5191 virtual TagAlias const* find( std::string const& alias ) const = 0;
5192 virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0;
5209 std::string m_arg;
5210 std::string m_substring;
5211 std::string m_patternName;
5220 TestSpecParser& parse( std::string const& arg );
5238 std::string preprocessPattern();
5251 TestSpec parseTestSpec( std::string const& arg );
5264 #include <string>
5305 std::string outputFilename;
5306 std::string name;
5307 std::string processName;
5311 std::string reporterName = CATCH_CONFIG_DEFAULT_REPORTER;
5314 std::vector<std::string> testsOrTags;
5315 std::vector<std::string> sectionsToRun;
5325 std::string const& getFilename() const;
5332 std::string getProcessName() const;
5333 std::string const& getReporterName() const;
5335 std::vector<std::string> const& getTestsOrTags() const override;
5336 std::vector<std::string> const& getSectionsToRun() const override;
5346 std::string name() const override;
5380 #include <string>
5390 std::string message;
5391 mutable std::string reconstructedExpression;
5395 std::string reconstructExpression() const;
5408 std::string getExpression() const;
5409 std::string getExpressionInMacro() const;
5411 std::string getExpandedExpression() const;
5412 std::string getMessage() const;
5473 #include <string>
5515 TestRunInfo( std::string const& _name );
5516 std::string name;
5519 GroupInfo( std::string const& _name,
5523 std::string name;
5564 std::string const& _stdOut,
5565 std::string const& _stdErr,
5576 std::string stdOut;
5577 std::string stdErr;
5616 std::string name;
5656 // static std::string getDescription();
5661 virtual void noMatchingTestCases( std::string const& spec ) = 0;
5663 virtual void reportInvalidArguments(std::string const&) {}
5672 virtual void benchmarkPreparing( std::string const& ) {}
5675 virtual void benchmarkFailed( std::string const& ) {}
5700 virtual std::string getDescription() const = 0;
5705 using FactoryMap = std::map<std::string, IReporterFactoryPtr>;
5709 virtual IStreamingReporterPtr create( std::string const& name, IConfigPtr const& config ) const = 0;
5729 std::string getFormattedDuration( double duration );
5734 std::string serializeFilters( std::vector<std::string> const& container );
5758 void noMatchingTestCases(std::string const&) override {}
5760 void reportInvalidArguments(std::string const&) override {}
5835 std::string stdOut;
5836 std::string stdErr;
5909 // which getExpandedExpression() calls to build the expression string.
6060 std::string getDescription() const override {
6067 explicit ReporterRegistrar( std::string const& name ) {
6080 std::string getDescription() const override {
6081 return std::string();
6125 static std::string getDescription();
6127 void noMatchingTestCases(std::string const& spec) override;
6161 static std::string getDescription();
6163 void noMatchingTestCases(std::string const& spec) override;
6165 void reportInvalidArguments(std::string const&arg) override;
6175 void benchmarkPreparing(std::string const& name) override;
6178 void benchmarkFailed(std::string const& error) override;
6194 void printClosedHeader(std::string const& _name);
6195 void printOpenHeader(std::string const& _name);
6197 // if string has a : in first line will set indent to follow it on
6199 void printHeaderString(std::string const& _string, std::size_t indent = 0);
6202 void printSummaryRow(std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row);
6239 XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes );
6246 std::string m_str;
6262 ScopedElement& writeText( std::string const& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent );
6265 ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
6281 XmlWriter& startElement( std::string const& name, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);
6283 ScopedElement scopedElement( std::string const& name, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);
6287 XmlWriter& writeAttribute( std::string const& name, std::string const& attribute );
6289 XmlWriter& writeAttribute( std::string const& name, bool attribute );
6292 XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
6298 XmlWriter& writeText( std::string const& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);
6300 XmlWriter& writeComment(std::string const& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent);
6302 void writeStylesheetRef( std::string const& url );
6318 std::vector<std::string> m_tags;
6319 std::string m_indent;
6334 static std::string getDescription();
6336 void noMatchingTestCases(std::string const& /*spec*/) override;
6355 void writeSection( std::string const& className,
6356 std::string const& rootName,
6365 std::string stdOutForSuite;
6366 std::string stdErrForSuite;
6383 static std::string getDescription();
6385 virtual std::string getStylesheetRef() const;
6391 void noMatchingTestCases(std::string const& s) override;
6414 void benchmarkPreparing(std::string const& name) override;
6417 void benchmarkFailed(std::string const&) override;
6582 const std::string benchmarkErrorMsg = "a benchmark failed to run successfully";
7199 #include <string>
7293 #include <string>
7300 Benchmark(std::string &&name)
7304 Benchmark(std::string &&name, FUN &&func)
7369 std::string name;
7472 #include <string>
7480 std::string name;
7483 NameAndLocation( std::string const& _name, SourceLineInfo const& _location );
7607 std::vector<std::string> m_filters;
7608 std::string m_trimmed_name;
7620 void addInitialFilters( std::vector<std::string> const& filters );
7621 void addNextFilters( std::vector<std::string> const& filters );
7623 std::vector<std::string> const& getFilters() const;
7625 std::string const& trimmedName() const;
7896 std::string Approx::toString() const {
7934 std::string StringMaker<Catch::Detail::Approx>::convert(Catch::Detail::Approx const& value) {
8054 #include <string>
8072 void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount );
8073 void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount );
8097 std::string const& message,
8114 void benchmarkPreparing( std::string const& name ) override;
8117 void benchmarkFailed( std::string const& error ) override;
8125 std::string getCurrentTestName() const override;
8143 void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr );
8284 // This is the overload that takes a string and infers the Equals matcher from it
8285 // The more general overload, that takes any string matcher, is in catch_capture_matchers.cpp
8286 void handleExceptionMatchExpr( AssertionHandler& handler, std::string const& str, StringRef const& matcherString ) {
8299 std::string AssertionResultData::reconstructExpression() const {
8338 std::string AssertionResult::getExpression() const {
8340 std::string expr; expr.reserve(m_info.capturedExpression.size() + 3);
8351 std::string AssertionResult::getExpressionInMacro() const {
8352 std::string expr;
8354 expr = static_cast<std::string>(m_info.capturedExpression);
8369 std::string AssertionResult::getExpandedExpression() const {
8370 std::string expr = m_resultData.reconstructExpression();
8376 std::string AssertionResult::getMessage() const {
8393 using StringMatcher = Matchers::Impl::MatcherBase<std::string>;
8395 // This is the general overload that takes a any string matcher
8396 // There is another overload, in catch_assertionhandler.h/.cpp, that only takes a string and infers
8399 std::string exceptionMessage = Catch::translateActiveException();
8400 MatchExpr<std::string, StringMatcher const&> expr( exceptionMessage, matcher, matcherString );
8480 static std::string chars = " \t\n\r";
8481 return chars.find(c) != std::string::npos;
8484 static std::string chars = "[({<|";
8485 return chars.find(c) != std::string::npos;
8488 static std::string chars = "])}>.,:;*+-=&/\\";
8489 return chars.find(c) != std::string::npos;
8495 std::vector<std::string> m_strings;
8498 size_t m_initialIndent = std::string::npos;
8516 auto line() const -> std::string const& { return m_column.m_strings[m_stringIndex]; }
8559 auto initial = m_pos == 0 && m_stringIndex == 0 ? m_column.m_initialIndent : std::string::npos;
8560 return initial == std::string::npos ? m_column.m_indent : initial;
8563 auto addIndentAndSuffix(std::string const &plain) const -> std::string {
8564 return std::string(indent(), ' ') + (m_suffix ? plain + "-" : plain);
8569 using value_type = std::string;
8576 assert(m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent);
8579 m_stringIndex++; // Empty string
8582 auto operator *() const -> std::string {
8622 explicit Column(std::string const& text) { m_strings.push_back(text); }
8656 auto toString() const -> std::string {
8695 using value_type = std::string;
8715 auto operator *() const -> std::string {
8716 std::string row, padding;
8721 std::string col = *m_iterators[i];
8724 padding = std::string(width - col.size(), ' ');
8728 padding += std::string(width, ' ');
8774 auto toString() const -> std::string {
8796 #include <string>
8829 std::string m_exeName;
8830 std::vector<std::string> m_args;
8837 Args( std::initializer_list<std::string> args )
8842 auto exeName() const -> std::string {
8847 // Wraps a token coming from a token stream. These may not directly correspond to strings as a single string
8854 std::string token;
8867 using Iterator = std::vector<std::string>::const_iterator;
8883 if( delimiterPos != std::string::npos ) {
8888 std::string opt = "- ";
9012 static auto logicError( std::string const &message ) -> BasicResult { return { ResultBase::LogicError, message }; }
9013 static auto runtimeError( std::string const &message ) -> BasicResult { return { ResultBase::RuntimeError, message }; }
9017 auto errorMessage() const -> std::string { return m_errorMessage; }
9030 std::string m_errorMessage; // Only populated if resultType is an error
9032 BasicResult( ResultBase::Type type, std::string const &message )
9068 std::string left;
9069 std::string right;
9073 inline auto convertInto( std::string const &source, T& target ) -> ParserResult {
9082 inline auto convertInto( std::string const &source, std::string& target ) -> ParserResult {
9086 inline auto convertInto( std::string const &source, bool &target ) -> ParserResult {
9087 std::string srcLC = source;
9099 inline auto convertInto( std::string const &source, CLARA_CONFIG_OPTIONAL_TYPE<T>& target ) -> ParserResult {
9122 virtual auto setValue( std::string const &arg ) -> ParserResult = 0;
9135 auto setValue( std::string const &arg ) -> ParserResult override {
9148 auto setValue( std::string const &arg ) -> ParserResult override {
9188 inline auto invokeLambda( L const &lambda, std::string const &arg ) -> ParserResult {
9203 auto setValue( std::string const &arg ) -> ParserResult override {
9230 virtual auto parse( std::string const& exeName, TokenStream const &tokens) const -> InternalParseResult = 0;
9254 std::string m_hint;
9255 std::string m_description;
9261 ParserRefImpl( T &ref, std::string const &hint )
9267 ParserRefImpl( LambdaT const &ref, std::string const &hint )
9272 auto operator()( std::string const &description ) -> DerivedT & {
9298 auto hint() const -> std::string { return m_hint; }
9302 std::shared_ptr<std::string> m_name;
9311 ExeName() : m_name( std::make_shared<std::string>( "<executable>" ) ) {}
9313 explicit ExeName( std::string &ref ) : ExeName() {
9314 m_ref = std::make_shared<BoundValueRef<std::string>>( ref );
9323 auto parse( std::string const&, TokenStream const &tokens ) const -> InternalParseResult override {
9327 auto name() const -> std::string { return *m_name; }
9328 auto set( std::string const& newName ) -> ParserResult {
9331 auto filename = ( lastSlash == std::string::npos )
9347 auto parse( std::string const &, TokenStream const &tokens ) const -> InternalParseResult override {
9368 inline auto normaliseOpt( std::string const &optName ) -> std::string {
9379 std::vector<std::string> m_optNames;
9388 Opt( LambdaT const &ref, std::string const &hint ) : ParserRefImpl( ref, hint ) {}
9391 Opt( T &ref, std::string const &hint ) : ParserRefImpl( ref, hint ) {}
9393 auto operator[]( std::string const &optName ) -> Opt & {
9413 auto isMatch( std::string const &optToken ) const -> bool {
9424 auto parse( std::string const&, TokenStream const &tokens ) const -> InternalParseResult override {
9601 auto parse( std::string const& exeName, TokenStream const &tokens ) const -> InternalParseResult override {
9709 auto const setWarning = [&]( std::string const& warning ) {
9725 auto const loadTestNamesFromFile = [&]( std::string const& filename ) {
9730 std::string line;
9746 auto const setTestOrder = [&]( std::string const& order ) {
9757 auto const setRngSeed = [&]( std::string const& seed ) {
9763 auto const setColourUsage = [&]( std::string const& useColour ) {
9776 auto const setWaitForKeypress = [&]( std::string const& keypress ) {
9790 auto const setVerbosity = [&]( std::string const& verbosity ) {
9802 auto const setReporter = [&]( std::string const& reporter ) {
9941 std::string StreamEndStop::operator+() const {
9942 return std::string();
9979 std::string const& Config::getFilename() const {
9988 std::string Config::getProcessName() const { return m_data.processName; }
9989 std::string const& Config::getReporterName() const { return m_data.reporterName; }
9991 std::vector<std::string> const& Config::getTestsOrTags() const { return m_data.testsOrTags; }
9992 std::vector<std::string> const& Config::getSectionsToRun() const { return m_data.sectionsToRun; }
10002 std::string Config::name() const { return m_data.name.empty() ? m_data.processName : m_data.name; }
10363 #include <string>
10366 void writeToDebugConsole( std::string const& text );
10374 void writeToDebugConsole( std::string const& text ) {
10382 void writeToDebugConsole( std::string const& text ) {
10390 void writeToDebugConsole( std::string const& text ) {
10461 #include <string>
10476 for( std::string line; std::getline(in, line); ) {
10515 void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs ) {
10517 lhs.find('\n') == std::string::npos &&
10518 rhs.find('\n') == std::string::npos )
10540 void throw_logic_error(std::string const& msg) {
10545 void throw_domain_error(std::string const& msg) {
10550 void throw_runtime_error(std::string const& msg) {
10662 #include <string>
10671 std::string translateActiveException() const override;
10672 std::string tryTranslators() const;
10694 std::string ExceptionTranslatorRegistry::translateActiveException() const {
10725 catch( std::string& msg ) {
10736 std::string ExceptionTranslatorRegistry::tryTranslators() const {
10745 std::string ExceptionTranslatorRegistry::translateActiveException() const {
10749 std::string ExceptionTranslatorRegistry::tryTranslators() const {
11038 void noMatchingTestCases( std::string const& spec ) override;
11040 void reportInvalidArguments(std::string const&arg) override;
11045 void benchmarkPreparing(std::string const& name) override;
11048 void benchmarkFailed(std::string const&) override;
11083 TestRunInfo::TestRunInfo( std::string const& _name ) : name( _name ) {}
11085 GroupInfo::GroupInfo( std::string const& _name,
11129 std::string const& _stdOut,
11130 std::string const& _stdErr,
11229 void add( std::string const& spelling );
11230 std::string all() const;
11232 std::set<std::string> spellings;
11276 std::string description = testCaseInfo.description;
11309 void TagInfo::add( std::string const& spelling ) {
11314 std::string TagInfo::all() const {
11321 std::string out; out.reserve(size);
11338 std::map<std::string, TagInfo> tagCounts;
11343 std::string lcaseTagName = toLower( tagName );
11409 std::string MatcherUntypedBase::toString() const {
11435 std::string ExceptionMessageMatcher::describe() const {
11440 Exception::ExceptionMessageMatcher Message(std::string const& message) {
11460 #include <string>
11464 std::string to_string(T const& t) {
11583 std::string WithinAbsMatcher::describe() const {
11615 std::string WithinUlpsMatcher::describe() const {
11656 std::string WithinRelMatcher::describe() const {
11697 std::string Catch::Matchers::Generic::Detail::finalizeDescription(const std::string& desc) {
11714 CasedString::CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity )
11718 std::string CasedString::adjustString( std::string const& str ) const {
11723 std::string CasedString::caseSensitivitySuffix() const {
11726 : std::string();
11729 StringMatcherBase::StringMatcherBase( std::string const& operation, CasedString const& comparator )
11734 std::string StringMatcherBase::describe() const {
11735 std::string description;
11748 bool EqualsMatcher::match( std::string const& source ) const {
11754 bool ContainsMatcher::match( std::string const& source ) const {
11760 bool StartsWithMatcher::match( std::string const& source ) const {
11766 bool EndsWithMatcher::match( std::string const& source ) const {
11770 RegexMatcher::RegexMatcher(std::string regex, CaseSensitive::Choice caseSensitivity): m_regex(std::move(regex)), m_caseSensitivity(caseSensitivity) {}
11772 bool RegexMatcher::match(std::string const& matchee) const {
11781 std::string RegexMatcher::describe() const {
11787 StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity ) {
11790 StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity ) {
11793 StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity ) {
11796 StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity ) {
11800 StdString::RegexMatcher Matches(std::string const& regex, CaseSensitive::Choice caseSensitivity) {
11915 m_messages.back().message = static_cast<std::string>(trimmed(start, pos));
11923 m_messages.back().message = static_cast<std::string>(trimmed(start, names.size() - 1));
11934 void Capturer::captureValue( size_t index, std::string const& value ) {
11951 #include <string>
11970 auto str() const -> std::string;
11982 auto str() const -> std::string;
11992 RedirectedStreams(std::string& redirectedCout, std::string& redirectedCerr);
11995 std::string& m_redirectedCout;
11996 std::string& m_redirectedCerr;
12018 std::string getContents();
12034 OutputRedirect(std::string& stdout_dest, std::string& stderr_dest);
12042 std::string& m_stdoutDest;
12043 std::string& m_stderrDest;
12084 auto RedirectedStdOut::str() const -> std::string { return m_rss.str(); }
12090 auto RedirectedStdErr::str() const -> std::string { return m_rss.str(); }
12092 RedirectedStreams::RedirectedStreams(std::string& redirectedCout, std::string& redirectedCerr)
12112 CATCH_RUNTIME_ERROR("Could not translate errno to a string");
12141 std::string TempFile::getContents() {
12151 OutputRedirect::OutputRedirect(std::string& stdout_dest, std::string& stderr_dest) :
12326 std::string extractClassName( StringRef const& classOrQualifiedMethodName );
12345 IStreamingReporterPtr create( std::string const& name, IConfigPtr const& config ) const override;
12347 void registerReporter( std::string const& name, IReporterFactoryPtr const& factory );
12364 #include <string>
12369 TagAlias(std::string const& _tag, SourceLineInfo _lineInfo);
12371 std::string tag;
12385 TagAlias const* find( std::string const& alias ) const override;
12386 std::string expandAliases( std::string const& unexpandedTestSpec ) const override;
12387 void add( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo );
12390 std::map<std::string, TagAlias> m_registry;
12477 void registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) override {
12489 void registerTagAlias( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) override {
12525 std::string translateActiveException() {
12537 IStreamingReporterPtr ReporterRegistry::create( std::string const& name, IConfigPtr const& config ) const {
12544 void ReporterRegistry::registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) {
12736 void RunContext::testGroupStarting(std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount) {
12740 void RunContext::testGroupEnded(std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount) {
12747 std::string redirectedCout;
12748 std::string redirectedCerr;
12840 TestCaseTracking::NameAndLocation( static_cast<std::string>(generatorName), lineInfo ) );
12882 void RunContext::benchmarkPreparing(std::string const& name) {
12891 void RunContext::benchmarkFailed(std::string const & error) {
12908 std::string RunContext::getCurrentTestName() const {
12911 : std::string();
12929 tempResult.message = static_cast<std::string>(message);
12952 std::string(),
12953 std::string(),
12956 testGroupEnded(std::string(), m_totals, 1, 1);
12975 void RunContext::runCurrentTest(std::string & redirectedCout, std::string & redirectedCerr) {
13091 data.message = static_cast<std::string>(message);
13106 std::string const& message,
13202 std::string const& _name )
13302 IStreamingReporterPtr createReporter(std::string const& reporterName, IConfigPtr const& config) {
13390 std::string filename = testCase.lineInfo.file;
13392 if (lastSlash != std::string::npos) {
13402 if (lastDot != std::string::npos) {
13669 m_writer( std::string( 1, static_cast<char>( c ) ) );
13678 m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
13689 void operator()( std::string const&str ) {
13793 auto ReusableStringStream::str() const -> std::string {
13822 bool startsWith( std::string const& s, std::string const& prefix ) {
13825 bool startsWith( std::string const& s, char prefix ) {
13828 bool endsWith( std::string const& s, std::string const& suffix ) {
13831 bool endsWith( std::string const& s, char suffix ) {
13834 bool contains( std::string const& s, std::string const& infix ) {
13835 return s.find( infix ) != std::string::npos;
13837 void toLowerInPlace( std::string& s ) {
13840 std::string toLower( std::string const& s ) {
13841 std::string lc = s;
13845 std::string trim( std::string const& str ) {
13847 std::string::size_type start = str.find_first_not_of( whitespaceChars );
13848 std::string::size_type end = str.find_last_not_of( whitespaceChars );
13850 return start != std::string::npos ? str.substr( start, 1+end-start ) : std::string();
13865 bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) {
13868 while( i != std::string::npos ) {
13874 i = std::string::npos;
13894 pluralise::pluralise( std::size_t count, std::string const& label )
13944 auto operator+=( std::string& lhs, StringRef const& rhs ) -> std::string& {
13954 TagAlias::TagAlias(std::string const & _tag, SourceLineInfo _lineInfo): tag(_tag), lineInfo(_lineInfo) {}
13980 TagAlias const* TagAliasRegistry::find( std::string const& alias ) const {
13988 std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const {
13989 std::string expandedTestSpec = unexpandedTestSpec;
13992 if( pos != std::string::npos ) {
14001 void TagAliasRegistry::add( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) {
14029 TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) {
14046 bool isReservedTag( std::string const& tag ) {
14049 void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) {
14058 std::string const& _className,
14065 std::vector<std::string> tags;
14066 std::string desc, tag;
14102 TestCaseInfo info( static_cast<std::string>(nameAndTags.name), _className, desc, tags, _lineInfo );
14106 void setTags( TestCaseInfo& testCaseInfo, std::vector<std::string> tags ) {
14112 std::string lcaseTag = toLower( tag );
14119 TestCaseInfo::TestCaseInfo( std::string const& _name,
14120 std::string const& _className,
14121 std::string const& _description,
14122 std::vector<std::string> const& _tags,
14146 std::string TestCaseInfo::tagsAsString() const {
14147 std::string ret;
14165 TestCase TestCase::withName( std::string const& _newName ) const {
14306 std::string name = testCase.getTestCaseInfo().name;
14336 std::string extractClassName( StringRef const& classOrQualifiedMethodName ) {
14337 std::string className(classOrQualifiedMethodName);
14342 if( penultimateColons == std::string::npos )
14367 NameAndLocation::NameAndLocation( std::string const& _name, SourceLineInfo const& _location )
14559 void SectionTracker::addInitialFilters( std::vector<std::string> const& filters ) {
14567 void SectionTracker::addNextFilters( std::vector<std::string> const& filters ) {
14572 std::vector<std::string> const& SectionTracker::getFilters() const {
14576 std::string const& SectionTracker::trimmedName() const {
14623 #include <string>
14629 TestSpec::Pattern::Pattern( std::string const& name )
14635 std::string const& TestSpec::Pattern::name() const {
14639 TestSpec::NamePattern::NamePattern( std::string const& name, std::string const& filterString )
14648 TestSpec::TagPattern::TagPattern( std::string const& tag, std::string const& filterString )
14672 std::string TestSpec::Filter::name() const {
14673 std::string name;
14712 TestSpecParser& TestSpecParser::parse( std::string const& arg ) {
14876 std::string TestSpecParser::preprocessPattern() {
14877 std::string token = m_patternName;
14933 TestSpec parseTestSpec( std::string const& arg ) {
15025 const std::string unprintableString = "{?}";
15043 std::string rawMemoryToString( const void *object, std::size_t size ) {
15061 std::string fpToString( T value, int precision ) {
15070 std::string d = rss.str();
15072 if( i != std::string::npos && i != d.size()-1 ) {
15086 std::string StringMaker<std::string>::convert(const std::string& str) {
15091 std::string s("\"");
15110 std::string StringMaker<std::string_view>::convert(std::string_view str) {
15111 return ::Catch::Detail::stringify(std::string{ str });
15115 std::string StringMaker<char const*>::convert(char const* str) {
15117 return ::Catch::Detail::stringify(std::string{ str });
15119 return{ "{null string}" };
15122 std::string StringMaker<char*>::convert(char* str) {
15124 return ::Catch::Detail::stringify(std::string{ str });
15126 return{ "{null string}" };
15131 std::string StringMaker<std::wstring>::convert(const std::wstring& wstr) {
15132 std::string s;
15141 std::string StringMaker<std::wstring_view>::convert(std::wstring_view str) {
15146 std::string StringMaker<wchar_t const*>::convert(wchar_t const * str) {
15150 return{ "{null string}" };
15153 std::string StringMaker<wchar_t *>::convert(wchar_t * str) {
15157 return{ "{null string}" };
15164 std::string StringMaker<std::byte>::convert(std::byte value) {
15169 std::string StringMaker<int>::convert(int value) {
15172 std::string StringMaker<long>::convert(long value) {
15175 std::string StringMaker<long long>::convert(long long value) {
15184 std::string StringMaker<unsigned int>::convert(unsigned int value) {
15187 std::string StringMaker<unsigned long>::convert(unsigned long value) {
15190 std::string StringMaker<unsigned long long>::convert(unsigned long long value) {
15199 std::string StringMaker<bool>::convert(bool b) {
15203 std::string StringMaker<signed char>::convert(signed char value) {
15220 std::string StringMaker<char>::convert(char c) {
15223 std::string StringMaker<unsigned char>::convert(unsigned char c) {
15227 std::string StringMaker<std::nullptr_t>::convert(std::nullptr_t) {
15233 std::string StringMaker<float>::convert(float value) {
15239 std::string StringMaker<double>::convert(double value) {
15243 std::string ratio_string<std::atto>::symbol() { return "a"; }
15244 std::string ratio_string<std::femto>::symbol() { return "f"; }
15245 std::string ratio_string<std::pico>::symbol() { return "p"; }
15246 std::string ratio_string<std::nano>::symbol() { return "n"; }
15247 std::string ratio_string<std::micro>::symbol() { return "u"; }
15248 std::string ratio_string<std::milli>::symbol() { return "m"; }
15405 WildcardPattern::WildcardPattern( std::string const& pattern,
15420 bool WildcardPattern::matches( std::string const& str ) const {
15435 std::string WildcardPattern::normaliseString( std::string const& str ) const {
15507 XmlEncode::XmlEncode( std::string const& str, ForWhat forWhat )
15640 XmlWriter::ScopedElement& XmlWriter::ScopedElement::writeText( std::string const& text, XmlFormatting fmt ) {
15657 XmlWriter& XmlWriter::startElement( std::string const& name, XmlFormatting fmt ) {
15671 XmlWriter::ScopedElement XmlWriter::scopedElement( std::string const& name, XmlFormatting fmt ) {
15696 XmlWriter& XmlWriter::writeAttribute( std::string const& name, std::string const& attribute ) {
15702 XmlWriter& XmlWriter::writeAttribute( std::string const& name, bool attribute ) {
15707 XmlWriter& XmlWriter::writeText( std::string const& text, XmlFormatting fmt) {
15720 XmlWriter& XmlWriter::writeComment( std::string const& text, XmlFormatting fmt) {
15730 void XmlWriter::writeStylesheetRef( std::string const& url ) {
15779 std::string getFormattedDuration( double duration ) {
15794 return std::string(buffer);
15808 std::string serializeFilters( std::vector<std::string> const& container ) {
15853 std::string bothOrAll( std::size_t count ) {
15854 return count == 1 ? std::string() :
15873 const std::string qualify_assertions_failed =
15875 bothOrAll(totals.assertions.failed) : std::string();
15929 printResultType(Colour::ResultSuccess, failedString() + std::string(" - but was ok"));
15986 void printResultType(Colour::Code colour, std::string const& passOrFail) const {
15996 void printIssue(std::string const& issue) const {
16070 std::string CompactReporter::getDescription() {
16074 void CompactReporter::noMatchingTestCases( std::string const& spec ) {
16270 std::string passOrFail;
16271 std::string messageLabel;
16272 std::string message;
16293 std::string name;
16350 auto unitsAsString() const -> std::string {
16432 ? std::string(colInfo.width - (strSize + 1), ' ')
16433 : std::string();
16475 std::string ConsoleReporter::getDescription() {
16479 void ConsoleReporter::noMatchingTestCases(std::string const& spec) {
16483 void ConsoleReporter::reportInvalidArguments(std::string const&arg){
16533 void ConsoleReporter::benchmarkPreparing(std::string const& name) {
16572 void ConsoleReporter::benchmarkFailed(std::string const& error) {
16663 void ConsoleReporter::printClosedHeader(std::string const& _name) {
16667 void ConsoleReporter::printOpenHeader(std::string const& _name) {
16675 // if string has a : in first line will set indent to follow it on
16677 void ConsoleReporter::printHeaderString(std::string const& _string, std::size_t indent) {
16679 if (i != std::string::npos)
16688 SummaryColumn( std::string _label, Colour::Code _colour )
16694 std::string row = rss.str();
16705 std::string label;
16707 std::vector<std::string> rows;
16740 void ConsoleReporter::printSummaryRow(std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row) {
16742 std::string value = col.rows[row];
16768 stream << Colour(Colour::Error) << std::string(failedRatio, '=');
16769 stream << Colour(Colour::ResultExpectedFailure) << std::string(failedButOkRatio, '=');
16771 stream << Colour(Colour::ResultSuccess) << std::string(passedRatio, '=');
16773 stream << Colour(Colour::Success) << std::string(passedRatio, '=');
16775 stream << Colour(Colour::Warning) << std::string(CATCH_CONFIG_CONSOLE_WIDTH - 1, '=');
16813 std::string getCurrentTimestamp() {
16836 return std::string(timeStamp, timeStampSize-1);
16839 std::string fileNameTag(const std::vector<std::string> &tags) {
16842 [] (std::string const& tag) {return tag.front() == '#'; });
16845 return std::string();
16852 std::string formatDuration( double seconds ) {
16870 std::string JunitReporter::getDescription() {
16874 void JunitReporter::noMatchingTestCases( std::string const& /*spec*/ ) {}
16961 std::string className = stats.testInfo.className;
16975 void JunitReporter::writeSection( std::string const& className,
16976 std::string const& rootName,
16979 std::string name = trim( sectionNode.stats.sectionInfo.name );
17029 std::string elementName;
17117 void ListeningReporter::noMatchingTestCases( std::string const& spec ) {
17124 void ListeningReporter::reportInvalidArguments(std::string const&arg){
17132 void ListeningReporter::benchmarkPreparing( std::string const& name ) {
17151 void ListeningReporter::benchmarkFailed( std::string const& error ) {
17263 std::string XmlReporter::getDescription() {
17267 std::string XmlReporter::getStylesheetRef() const {
17268 return std::string();
17277 void XmlReporter::noMatchingTestCases( std::string const& s ) {
17283 std::string stylesheetRef = getStylesheetRef();
17461 void XmlReporter::benchmarkPreparing(std::string const& name) {
17498 void XmlReporter::benchmarkFailed(std::string const &error) {