Lines Matching defs:const

26 // - stringification - the detection of "ostream& operator<<(ostream&, const T&)" and StringMaker<>
357 static const int var DOCTEST_UNUSED // NOLINT(fuchsia-statically-constructed-objects,cert-err58-cpp)
470 // - relational operators as free functions - taking const char* as one of the params
473 static const unsigned len = 24; //!OCLINT avoid private static members
474 static const unsigned last = len - 1; //!OCLINT avoid private static members
489 bool isOnStack() const { return (buf[last] & 128) == 0; }
493 void copy(const String& other);
500 String(const char* in);
501 String(const char* in, unsigned in_size);
503 String(const String& other);
504 String& operator=(const String& other);
506 String& operator+=(const String& other);
507 String operator+(const String& other) const;
512 char operator[](unsigned i) const;
516 const char* c_str() const { return const_cast<String*>(this)->c_str(); } // NOLINT
523 unsigned size() const;
524 unsigned capacity() const;
526 int compare(const char* other, bool no_case = false) const;
527 int compare(const String& other, bool no_case = false) const;
530 DOCTEST_INTERFACE bool operator==(const String& lhs, const String& rhs);
531 DOCTEST_INTERFACE bool operator!=(const String& lhs, const String& rhs);
532 DOCTEST_INTERFACE bool operator<(const String& lhs, const String& rhs);
533 DOCTEST_INTERFACE bool operator>(const String& lhs, const String& rhs);
534 DOCTEST_INTERFACE bool operator<=(const String& lhs, const String& rhs);
535 DOCTEST_INTERFACE bool operator>=(const String& lhs, const String& rhs);
537 DOCTEST_INTERFACE std::ostream& operator<<(std::ostream& s, const String& in);
653 DOCTEST_INTERFACE const char* assertString(assertType::Enum at);
654 DOCTEST_INTERFACE const char* failureString(assertType::Enum at);
655 DOCTEST_INTERFACE const char* skipPathFromFilename(const char* file);
661 const char* m_name; // name of the test case
662 const char* m_test_suite; // the test suite in which the test was added
663 const char* m_description;
676 const TestCaseData* m_test_case;
678 const char* m_file;
680 const char* m_expr;
692 const char* m_exception_type;
693 const char* m_exception_string;
699 const char* m_file;
707 const char* m_file;
710 bool operator<(const SubcaseSignature& other) const;
717 virtual void stringify(std::ostream*) const = 0;
730 const detail::TestCase* currentTest = nullptr;
790 template<class T> struct is_lvalue_reference { const static bool value=false; };
791 template<class T> struct is_lvalue_reference<T&> { const static bool value=true; };
808 template<class T> struct remove_const<const T> { typedef T type; };
822 { static const bool value = false; };
841 using has_insertion_operator = has_insertion_operator_impl::check<const T>;
843 DOCTEST_INTERFACE void my_memcpy(void* dest, const void* src, unsigned num);
852 static String convert(const DOCTEST_REF_WRAP(T)) {
861 static String convert(const DOCTEST_REF_WRAP(T) in) {
867 DOCTEST_INTERFACE String rawMemoryToString(const void* object, unsigned size);
870 String rawMemoryToString(const DOCTEST_REF_WRAP(T) object) {
875 const char* type_to_string() {
906 String toString(const DOCTEST_REF_WRAP(T) value) {
912 DOCTEST_INTERFACE String toString(const char* in);
933 String toString(const DOCTEST_REF_WRAP(T) value) {
940 DOCTEST_INTERFACE String toString(const std::string& in);
948 Approx operator()(double value) const;
952 explicit Approx(const T& value,
964 const T& newEpsilon) {
975 const T& newScale) {
982 DOCTEST_INTERFACE friend bool operator==(double lhs, const Approx & rhs);
983 DOCTEST_INTERFACE friend bool operator==(const Approx & lhs, double rhs);
984 DOCTEST_INTERFACE friend bool operator!=(double lhs, const Approx & rhs);
985 DOCTEST_INTERFACE friend bool operator!=(const Approx & lhs, double rhs);
986 DOCTEST_INTERFACE friend bool operator<=(double lhs, const Approx & rhs);
987 DOCTEST_INTERFACE friend bool operator<=(const Approx & lhs, double rhs);
988 DOCTEST_INTERFACE friend bool operator>=(double lhs, const Approx & rhs);
989 DOCTEST_INTERFACE friend bool operator>=(const Approx & lhs, double rhs);
990 DOCTEST_INTERFACE friend bool operator< (double lhs, const Approx & rhs);
991 DOCTEST_INTERFACE friend bool operator< (const Approx & lhs, double rhs);
992 DOCTEST_INTERFACE friend bool operator> (double lhs, const Approx & rhs);
993 DOCTEST_INTERFACE friend bool operator> (const Approx & lhs, double rhs);
995 DOCTEST_INTERFACE friend String toString(const Approx& in);
1001 DOCTEST_APPROX_PREFIX operator==(const T& lhs, const Approx& rhs) { return operator==(double(lhs), rhs); }
1002 DOCTEST_APPROX_PREFIX operator==(const Approx& lhs, const T& rhs) { return operator==(rhs, lhs); }
1003 DOCTEST_APPROX_PREFIX operator!=(const T& lhs, const Approx& rhs) { return !operator==(lhs, rhs); }
1004 DOCTEST_APPROX_PREFIX operator!=(const Approx& lhs, const T& rhs) { return !operator==(rhs, lhs); }
1005 DOCTEST_APPROX_PREFIX operator<=(const T& lhs, const Approx& rhs) { return double(lhs) < rhs.m_value || lhs == rhs; }
1006 DOCTEST_APPROX_PREFIX operator<=(const Approx& lhs, const T& rhs) { return lhs.m_value < double(rhs) || lhs == rhs; }
1007 DOCTEST_APPROX_PREFIX operator>=(const T& lhs, const Approx& rhs) { return double(lhs) > rhs.m_value || lhs == rhs; }
1008 DOCTEST_APPROX_PREFIX operator>=(const Approx& lhs, const T& rhs) { return lhs.m_value > double(rhs) || lhs == rhs; }
1009 DOCTEST_APPROX_PREFIX operator< (const T& lhs, const Approx& rhs) { return double(lhs) < rhs.m_value && lhs != rhs; }
1010 DOCTEST_APPROX_PREFIX operator< (const Approx& lhs, const T& rhs) { return lhs.m_value < double(rhs) && lhs != rhs; }
1011 DOCTEST_APPROX_PREFIX operator> (const T& lhs, const Approx& rhs) { return double(lhs) > rhs.m_value && lhs != rhs; }
1012 DOCTEST_APPROX_PREFIX operator> (const Approx& lhs, const T& rhs) { return lhs.m_value > double(rhs) && lhs != rhs; }
1024 DOCTEST_INTERFACE String toString(const Approx& in);
1026 DOCTEST_INTERFACE const ContextOptions* getContextOptions();
1039 template<> struct not_char_pointer<const char*> { enum { value = 0 }; };
1061 Subcase(const String& name, const char* file, int line);
1064 operator bool() const;
1068 String stringifyBinaryExpr(const DOCTEST_REF_WRAP(L) lhs, const char* op,
1069 const DOCTEST_REF_WRAP(R) rhs) {
1100 rt& operator op(const R&) { \
1111 Result(bool passed, const String& decomposition = String());
1169 inline bool eq(const char* lhs, const char* rhs) { return String(lhs) == String(rhs); }
1170 inline bool ne(const char* lhs, const char* rhs) { return String(lhs) != String(rhs); }
1171 inline bool lt(const char* lhs, const char* rhs) { return String(lhs) < String(rhs); }
1172 inline bool gt(const char* lhs, const char* rhs) { return String(lhs) > String(rhs); }
1173 inline bool le(const char* lhs, const char* rhs) { return String(lhs) <= String(rhs); }
1174 inline bool ge(const char* lhs, const char* rhs) { return String(lhs) >= String(rhs); }
1180 DOCTEST_COMPARISON_RETURN_TYPE name(const DOCTEST_REF_WRAP(L) lhs, \
1181 const DOCTEST_REF_WRAP(R) rhs) { \
1234 //operator L() const { return lhs; }
1235 operator L() const { return lhs; }
1299 const char* m_test_suite;
1300 const char* m_description;
1309 TestSuite& operator*(const char* in);
1312 TestSuite& operator*(const T& in) {
1324 const char* m_type; // for templated test cases - gets appended to the real name
1328 TestCase(funcType test, const char* file, unsigned line, const TestSuite& test_suite,
1329 const char* type = "", int template_id = -1);
1331 TestCase(const TestCase& other);
1334 TestCase& operator=(const TestCase& other);
1337 TestCase& operator*(const char* in);
1340 TestCase& operator*(const T& in) {
1345 bool operator<(const TestCase& other) const;
1349 DOCTEST_INTERFACE int regTest(const TestCase& tc);
1350 DOCTEST_INTERFACE int setTestSuite(const TestSuite& ts);
1354 int instantiationHelper(const T&) { return 0; }
1369 template <int, class L, class R> struct RelationalComparator { bool operator()(const DOCTEST_REF_WRAP(L), const DOCTEST_REF_WRAP(R) ) const { return false; } };
1372 template <class L, class R> struct RelationalComparator<n, L, R> { bool operator()(const DOCTEST_REF_WRAP(L) lhs, const DOCTEST_REF_WRAP(R) rhs) const { return op(lhs, rhs); } };
1384 ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr,
1385 const char* exception_type = "", const char* exception_string = "");
1387 void setResult(const Result& res);
1390 DOCTEST_NOINLINE void binary_assert(const DOCTEST_REF_WRAP(L) lhs,
1391 const DOCTEST_REF_WRAP(R) rhs) {
1398 DOCTEST_NOINLINE void unary_assert(const DOCTEST_REF_WRAP(L) val) {
1411 void react() const;
1423 DOCTEST_INTERFACE void failed_out_of_a_testing_context(const AssertData& ad);
1425 DOCTEST_INTERFACE void decomp_assert(assertType::Enum at, const char* file, int line,
1426 const char* expr, Result result);
1456 DOCTEST_NOINLINE void binary_assert(assertType::Enum at, const char* file, int line,
1457 const char* expr, const DOCTEST_REF_WRAP(L) lhs,
1458 const DOCTEST_REF_WRAP(R) rhs) {
1470 DOCTEST_NOINLINE void unary_assert(assertType::Enum at, const char* file, int line,
1471 const char* expr, const DOCTEST_REF_WRAP(L) val) {
1489 virtual bool translate(String&) const = 0;
1499 bool translate(String& res) const override {
1517 DOCTEST_INTERFACE void registerExceptionTranslatorImpl(const IExceptionTranslator* et);
1523 static void convert(std::ostream* s, const T& in) {
1529 static void convert(std::ostream* s, const char* in) { *s << String(in); }
1536 static void convert(std::ostream* s, const T& in) {
1546 void toStream(std::ostream* s, const T& value) {
1552 DOCTEST_INTERFACE void toStream(std::ostream* s, const char* in);
1582 const L lambda_;
1585 explicit ContextScope(const L &lambda) : lambda_(lambda) {}
1589 void stringify(std::ostream* s) const override { lambda_(s); }
1598 MessageBuilder(const char* file, int line, assertType::Enum severity);
1604 MessageBuilder& operator,(const T& in) {
1611 MessageBuilder& operator<<(const T& in) { return this->operator,(in); }
1618 MessageBuilder& operator*(const T& in) { return this->operator,(in); }
1625 ContextScope<L> MakeContextScope(const L &lambda) {
1636 void fill(detail::TestCase& state) const { state.DOCTEST_CAT(m_, name) = data; } \
1637 void fill(detail::TestSuite& state) const { state.DOCTEST_CAT(m_, name) = data; } \
1640 DOCTEST_DEFINE_DECORATOR(test_suite, const char*, "");
1641 DOCTEST_DEFINE_DECORATOR(description, const char*, "");
1676 typedef void (*assert_handler)(const AssertData&);
1684 void parseArgs(int argc, const char* const* argv, bool withDefaults = false);
1687 explicit Context(int argc = 0, const char* const* argv = nullptr);
1691 void applyCommandLine(int argc, const char* const* argv);
1693 void addFilter(const char* filter, const char* value);
1695 void setOption(const char* option, int value);
1696 void setOption(const char* option, const char* value);
1750 const TestRunStats* run_stats = nullptr;
1751 const TestCaseData** data = nullptr;
1757 // The constructor has to accept "const ContextOptions&" as a single argument
1759 // Reporter(const ContextOptions& in)
1762 virtual void report_query(const QueryData&) = 0;
1767 virtual void test_run_end(const TestRunStats&) = 0;
1770 virtual void test_case_start(const TestCaseData&) = 0;
1772 virtual void test_case_reenter(const TestCaseData&) = 0;
1774 virtual void test_case_end(const CurrentTestCaseStats&) = 0;
1777 virtual void test_case_exception(const TestCaseException&) = 0;
1780 virtual void subcase_start(const SubcaseSignature&) = 0;
1785 virtual void log_assert(const AssertData&) = 0;
1787 virtual void log_message(const MessageData&) = 0;
1791 virtual void test_case_skipped(const TestCaseData&) = 0;
1798 static const IContextScope* const* get_active_contexts();
1802 static const String* get_stringified_contexts();
1806 typedef IReporter* (*reporterCreatorFunc)(const ContextOptions&);
1808 DOCTEST_INTERFACE void registerReporterImpl(const char* name, int prio, reporterCreatorFunc c, bool isReporter);
1811 IReporter* reporterCreator(const ContextOptions& o) {
1817 int registerReporter(const char* name, int priority, bool isReporter) {
1881 DOCTEST_REGISTER_FUNCTION(inline const, proxy(), decorators) \
1907 inline const char* type_to_string<__VA_ARGS__>() { \
1926 iter(const char* file, unsigned line, int index) { \
1938 iter(const char*, unsigned, int) {} \
1972 if(const doctest::detail::Subcase & DOCTEST_ANONYMOUS(_DOCTEST_ANON_SUBCASE_) DOCTEST_UNUSED = \
2126 } catch(const typename doctest::detail::remove_const< \
2916 int stricmp(const char* a, const char* b) {
2918 const int d = tolower(*a) - tolower(*b);
2958 void my_memcpy(void* dest, const void* src, unsigned num) { memcpy(dest, src, num); }
2960 String rawMemoryToString(const void* object, unsigned size) {
2968 unsigned const char* bytes = static_cast<unsigned const char*>(object);
3029 unsigned int getElapsedMicroseconds() const {
3032 //unsigned int getElapsedMilliseconds() const {
3035 double getElapsedSeconds() const { return static_cast<double>(getCurrentTicks() - m_ticks) / 1000000.0; }
3081 operator T() const DOCTEST_NOEXCEPT { return load(); }
3083 T load(std::memory_order order = std::memory_order_seq_cst) const DOCTEST_NOEXCEPT {
3085 for(auto const& c : m_atomics) {
3219 void String::copy(const String& other) {
3243 String::String(const char* in)
3246 String::String(const char* in, unsigned in_size) {
3262 String::String(const String& other) { copy(other); }
3264 String& String::operator=(const String& other) {
3275 String& String::operator+=(const String& other) {
3276 const unsigned my_old_size = size();
3277 const unsigned other_size = other.size();
3278 const unsigned total_size = my_old_size + other_size;
3327 String String::operator+(const String& other) const { return String(*this) += other; }
3348 char String::operator[](unsigned i) const {
3359 unsigned String::size() const {
3366 unsigned String::capacity() const {
3372 int String::compare(const char* other, bool no_case) const {
3378 int String::compare(const String& other, bool no_case) const {
3383 bool operator==(const String& lhs, const String& rhs) { return lhs.compare(rhs) == 0; }
3384 bool operator!=(const String& lhs, const String& rhs) { return lhs.compare(rhs) != 0; }
3385 bool operator< (const String& lhs, const String& rhs) { return lhs.compare(rhs) < 0; }
3386 bool operator> (const String& lhs, const String& rhs) { return lhs.compare(rhs) > 0; }
3387 bool operator<=(const String& lhs, const String& rhs) { return (lhs != rhs) ? lhs.compare(rhs) < 0 : true; }
3388 bool operator>=(const String& lhs, const String& rhs) { return (lhs != rhs) ? lhs.compare(rhs) > 0 : true; }
3391 std::ostream& operator<<(std::ostream& s, const String& in) { return s << in.c_str(); }
3405 const char* assertString(assertType::Enum at) {
3467 const char* failureString(assertType::Enum at) {
3480 const char* skipPathFromFilename(const char* file) {
3497 bool SubcaseSignature::operator<(const SubcaseSignature& other) const {
3509 String toString(char* in) { return toString(static_cast<const char*>(in)); }
3511 String toString(const char* in) { return String("\"") + (in ? in : "{null string}") + "\""; }
3541 String toString(const std::string& in) { return in.c_str(); }
3549 Approx Approx::operator()(double value) const {
3565 bool operator==(double lhs, const Approx& rhs) {
3570 bool operator==(const Approx& lhs, double rhs) { return operator==(rhs, lhs); }
3571 bool operator!=(double lhs, const Approx& rhs) { return !operator==(lhs, rhs); }
3572 bool operator!=(const Approx& lhs, double rhs) { return !operator==(rhs, lhs); }
3573 bool operator<=(double lhs, const Approx& rhs) { return lhs < rhs.m_value || lhs == rhs; }
3574 bool operator<=(const Approx& lhs, double rhs) { return lhs.m_value < rhs || lhs == rhs; }
3575 bool operator>=(double lhs, const Approx& rhs) { return lhs > rhs.m_value || lhs == rhs; }
3576 bool operator>=(const Approx& lhs, double rhs) { return lhs.m_value > rhs || lhs == rhs; }
3577 bool operator<(double lhs, const Approx& rhs) { return lhs < rhs.m_value && lhs != rhs; }
3578 bool operator<(const Approx& lhs, double rhs) { return lhs.m_value < rhs && lhs != rhs; }
3579 bool operator>(double lhs, const Approx& rhs) { return lhs > rhs.m_value && lhs != rhs; }
3580 bool operator>(const Approx& lhs, double rhs) { return lhs.m_value > rhs && lhs != rhs; }
3582 String toString(const Approx& in) {
3586 const ContextOptions* getContextOptions() { return DOCTEST_BRANCH_ON_DISABLED(nullptr, g_cs); }
3592 Context::Context(int, const char* const*) {}
3594 void Context::applyCommandLine(int, const char* const*) {}
3595 void Context::addFilter(const char*, const char*) {}
3597 void Context::setOption(const char*, int) {}
3598 void Context::setOption(const char*, const char*) {}
3607 const IContextScope* const* IReporter::get_active_contexts() { return nullptr; }
3609 const String* IReporter::get_stringified_contexts() { return nullptr; }
3611 int registerReporter(const char*, int, IReporter*) { return 0; }
3681 int wildcmp(const char* str, const char* wild, bool caseSensitive) {
3682 const char* cp = str;
3683 const char* mp = wild;
3718 //unsigned hashStr(unsigned const char* str) {
3727 bool matchesAny(const char* name, const std::vector<String>& filters, bool matchEmpty,
3739 Subcase::Subcase(const String& name, const char* file, int line)
3804 Subcase::operator bool() const { return m_entered; }
3806 Result::Result(bool passed, const String& decomposition)
3813 TestSuite& TestSuite::operator*(const char* in) {
3827 TestCase::TestCase(funcType test, const char* file, unsigned line, const TestSuite& test_suite,
3828 const char* type, int template_id) {
3847 TestCase::TestCase(const TestCase& other)
3854 TestCase& TestCase::operator=(const TestCase& other) {
3855 static_cast<TestCaseData&>(*this) = static_cast<const TestCaseData&>(other);
3868 TestCase& TestCase::operator*(const char* in) {
3879 bool TestCase::operator<(const TestCase& other) const {
3883 const int name_cmp = strcmp(m_name, other.m_name);
3886 const int file_cmp = m_file.compare(other.m_file);
3901 bool fileOrderComparator(const TestCase* lhs, const TestCase* rhs) {
3904 const int res = lhs->m_file.compare(rhs->m_file, bool(DOCTEST_MSVC));
3913 bool suiteOrderComparator(const TestCase* lhs, const TestCase* rhs) {
3914 const int res = std::strcmp(lhs->m_test_suite, rhs->m_test_suite);
3921 bool nameOrderComparator(const TestCase* lhs, const TestCase* rhs) {
3922 const int res = std::strcmp(lhs->m_name, rhs->m_name);
4011 std::vector<const IExceptionTranslator*>& getExceptionTranslators() {
4012 static std::vector<const IExceptionTranslator*> data;
4031 } catch(const char* msg) {
4046 int regTest(const TestCase& tc) {
4052 int setTestSuite(const TestSuite& ts) {
4074 static const int PREFIX_LEN = 11;
4115 void registerExceptionTranslatorImpl(const IExceptionTranslator* et) {
4123 void toStream(std::ostream* s, const char* in) { *s << in; }
4184 void reportFatal(const std::string&);
4191 const char* name;
4339 const char* name;
4357 const char* name = "<unknown signal>";
4439 void reportFatal(const std::string& message) {
4459 ResultBuilder::ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr,
4460 const char* exception_type, const char* exception_string) {
4477 void ResultBuilder::setResult(const Result& res) {
4517 void ResultBuilder::react() const {
4522 void failed_out_of_a_testing_context(const AssertData& ad) {
4529 void decomp_assert(assertType::Enum at, const char* file, int line, const char* expr,
4542 MessageBuilder::MessageBuilder(const char* file, int line, assertType::Enum severity) {
4556 const bool isWarn = m_severity & assertType::is_warn;
4579 DOCTEST_NORETURN void throw_exception(Ex const& e) {
4606 XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes );
4608 void encodeTo( std::ostream& os ) const;
4610 friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode );
4629 ScopedElement& writeText( std::string const& text, bool indent = true );
4632 ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
4644 XmlWriter( XmlWriter const& ) = delete;
4645 XmlWriter& operator=( XmlWriter const& ) = delete;
4647 XmlWriter& startElement( std::string const& name );
4649 ScopedElement scopedElement( std::string const& name );
4653 XmlWriter& writeAttribute( std::string const& name, std::string const& attribute );
4655 XmlWriter& writeAttribute( std::string const& name, const char* attribute );
4657 XmlWriter& writeAttribute( std::string const& name, bool attribute );
4660 XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
4666 XmlWriter& writeText( std::string const& text, bool indent = true );
4668 //XmlWriter& writeComment( std::string const& text );
4670 //void writeStylesheetRef( std::string const& url );
4734 XmlEncode::XmlEncode( std::string const& str, ForWhat forWhat )
4739 void XmlEncode::encodeTo( std::ostream& os ) const {
4833 std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) {
4861 XmlWriter::ScopedElement& XmlWriter::ScopedElement::writeText( std::string const& text, bool indent ) {
4876 XmlWriter& XmlWriter::startElement( std::string const& name ) {
4886 XmlWriter::ScopedElement XmlWriter::scopedElement( std::string const& name ) {
4907 XmlWriter& XmlWriter::writeAttribute( std::string const& name, std::string const& attribute ) {
4913 XmlWriter& XmlWriter::writeAttribute( std::string const& name, const char* attribute ) {
4919 XmlWriter& XmlWriter::writeAttribute( std::string const& name, bool attribute ) {
4924 XmlWriter& XmlWriter::writeText( std::string const& text, bool indent ) {
4936 //XmlWriter& XmlWriter::writeComment( std::string const& text ) {
4943 //void XmlWriter::writeStylesheetRef( std::string const& url ) {
4983 const ContextOptions& opt;
4984 const TestCaseData* tc = nullptr;
4986 XmlReporter(const ContextOptions& co)
5003 unsigned line(unsigned l) const { return opt.no_line_numbers ? 0 : l; }
5005 void test_case_start_impl(const TestCaseData& in) {
5041 void report_query(const QueryData& in) override {
5097 void test_run_end(const TestRunStats& p) override {
5116 void test_case_start(const TestCaseData& in) override {
5121 void test_case_reenter(const TestCaseData&) override {}
5123 void test_case_end(const CurrentTestCaseStats& st) override {
5137 void test_case_exception(const TestCaseException& e) override {
5145 void subcase_start(const SubcaseSignature& in) override {
5157 void log_assert(const AssertData& rb) override {
5186 void log_message(const MessageData& mb) override {
5201 void test_case_skipped(const TestCaseData& in) override {
5212 void fulltext_log_assert_to_stream(std::ostream& s, const AssertData& rb) {
5281 auto const timeStampSize = sizeof("2017-01-16T17:06:45Z");
5291 const char* const fmt = "%Y-%m-%dT%H:%M:%SZ";
5299 JUnitTestMessage(const std::string& _message, const std::string& _type, const std::string& _details)
5302 JUnitTestMessage(const std::string& _message, const std::string& _details)
5310 JUnitTestCase(const std::string& _classname, const std::string& _name)
5318 void add(const std::string& classname, const std::string& name) {
5335 void addFailure(const std::string& message, const std::string& type, const std::string& details) {
5340 void addError(const std::string& message, const std::string& details) {
5353 const ContextOptions& opt;
5354 const TestCaseData* tc = nullptr;
5356 JUnitReporter(const ContextOptions& co)
5360 unsigned line(unsigned l) const { return opt.no_line_numbers ? 0 : l; }
5366 void report_query(const QueryData&) override {}
5370 void test_run_end(const TestRunStats& p) override {
5389 for(const auto& testCase : testCaseData.testcases) {
5398 for(const auto& failure : testCase.failures) {
5405 for(const auto& error : testCase.errors) {
5417 void test_case_start(const TestCaseData& in) override {
5422 void test_case_reenter(const TestCaseData& in) override {
5431 void test_case_end(const CurrentTestCaseStats&) override {
5437 void test_case_exception(const TestCaseException& e) override {
5442 void subcase_start(const SubcaseSignature& in) override {
5449 void log_assert(const AssertData& rb) override {
5464 void log_message(const MessageData&) override {}
5466 void test_case_skipped(const TestCaseData&) override {}
5492 std::ostream& operator<<(std::ostream& out, const Whitespace& ws) {
5507 const ContextOptions& opt;
5508 const TestCaseData* tc;
5510 ConsoleReporter(const ContextOptions& co)
5514 ConsoleReporter(const ContextOptions& co, std::ostream& ostr)
5528 const char* getSuccessOrFailString(bool success, assertType::Enum at,
5529 const char* success_str) {
5541 const char* success_str = "SUCCESS") {
5563 virtual void file_line_to_stream(const char* file, int line,
5564 const char* tail = "") {
5727 auto printReporters = [this] (const reporterMap& reporters, const char* type) {
5759 void report_query(const QueryData& in) override {
5802 void test_run_end(const TestRunStats& p) override {
5809 const bool anythingFailed = p.numTestCasesFailed > 0 || p.numAssertsFailed > 0;
5818 const int numSkipped = p.numTestCases - p.numTestCasesPassingFilters;
5834 void test_case_start(const TestCaseData& in) override {
5841 void test_case_reenter(const TestCaseData&) override {
5845 void test_case_end(const CurrentTestCaseStats& st) override {
5882 void test_case_exception(const TestCaseException& e) override {
5906 void subcase_start(const SubcaseSignature& subc) override {
5919 void log_assert(const AssertData& rb) override {
5935 void log_message(const MessageData& mb) override {
5951 void test_case_skipped(const TestCaseData&) override {}
5961 DebugOutputWindowReporter(const ContextOptions& co)
5977 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_run_end, const TestRunStats&, in)
5978 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_start, const TestCaseData&, in)
5979 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_reenter, const TestCaseData&, in)
5980 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_end, const CurrentTestCaseStats&, in)
5981 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_exception, const TestCaseException&, in)
5982 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(subcase_start, const SubcaseSignature&, in)
5984 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(log_assert, const AssertData&, in)
5985 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(log_message, const MessageData&, in)
5986 DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_skipped, const TestCaseData&, in)
5993 bool parseOptionImpl(int argc, const char* const* argv, const char* pattern, String* value) {
6012 const unsigned len = strlen(temp);
6028 bool parseOption(int argc, const char* const* argv, const char* pattern, String* value = nullptr,
6029 const String& defaultVal = String()) {
6041 bool parseFlag(int argc, const char* const* argv, const char* pattern) {
6046 bool parseCommaSepArgs(int argc, const char* const* argv, const char* pattern,
6074 bool parseIntOption(int argc, const char* const* argv, const char* pattern, optionType type,
6082 const char positive[][5] = {"1", "true", "on", "yes"}; // 5 - strlen("true") + 1
6083 const char negative[][6] = {"0", "false", "off", "no"}; // 6 - strlen("false") + 1
6109 Context::Context(int argc, const char* const* argv)
6122 void Context::applyCommandLine(int argc, const char* const* argv) {
6129 void Context::parseArgs(int argc, const char* const* argv, bool withDefaults) {
6252 void Context::addFilter(const char* filter, const char* value) { setOption(filter, value); }
6261 void Context::setOption(const char* option, int value) {
6267 void Context::setOption(const char* option, const char* value) {
6354 std::vector<const TestCase*> testArray;
6371 const auto first = &testArray[0];
6375 const auto temp = first[i];
6389 std::vector<const TestCaseData*> queryResults;
6396 const auto& tc = *curr;
6490 } catch(const TestFailureException&) {
6547 const IContextScope* const* IReporter::get_active_contexts() {
6552 const String* IReporter::get_stringified_contexts() {
6557 void registerReporterImpl(const char* name, int priority, reporterCreatorFunc c, bool isReporter) {