5#ifndef BEAST_UNIT_TEST_SUITE_HPP 
    6#define BEAST_UNIT_TEST_SUITE_HPP 
    8#include <xrpl/beast/unit_test/runner.h> 
   10#include <boost/filesystem.hpp> 
   11#include <boost/lexical_cast.hpp> 
   12#include <boost/throw_exception.hpp> 
   23template <
class String>
 
   30    namespace fs = boost::filesystem;
 
   31    s.
append(fs::path{file}.filename().
string());
 
   33    s.
append(boost::lexical_cast<std::string>(line));
 
 
   63        what() const noexcept
 override 
   65            return "test suite aborted";
 
 
 
   69    template <
class CharT, 
class Traits, 
class Allocator>
 
   87            auto const& s = this->
str();
 
 
 
  110    class scoped_testcase;
 
  179    template <
class = 
void>
 
  184    template <
class = 
void>
 
  197    template <
class String>
 
  199    fail(String 
const& reason, 
char const* file, 
int line);
 
  201    template <
class = 
void>
 
  224    template <
class Condition>
 
  228        return expect(shouldBeTrue, 
"");
 
 
  231    template <
class Condition, 
class String>
 
  233    expect(Condition 
const& shouldBeTrue, String 
const& reason);
 
  235    template <
class Condition>
 
  237    expect(Condition 
const& shouldBeTrue, 
char const* file, 
int line)
 
  239        return expect(shouldBeTrue, 
"", file, line);
 
 
  242    template <
class Condition, 
class String>
 
  245        Condition 
const& shouldBeTrue,
 
  246        String 
const& reason,
 
  255    template <
class F, 
class String>
 
  257    except(F&& f, String 
const& reason);
 
  264    template <
class E, 
class F, 
class String>
 
  266    except(F&& f, String 
const& reason);
 
  267    template <
class E, 
class F>
 
  271        return except<E>(f, 
"");
 
 
  273    template <
class F, 
class String>
 
  275    unexcept(F&& f, String 
const& reason);
 
  292    template <
class Condition, 
class String>
 
  294    unexpected(Condition shouldBeFalse, String 
const& reason);
 
  296    template <
class Condition>
 
  309        static suite* pts = 
nullptr;
 
 
  320    template <
class = 
void>
 
 
  340        auto const& name = 
ss_.
str();
 
 
 
  382    return {suite_, ss_};
 
 
  389    return {suite_, ss_, t};
 
 
  411template <
class Condition, 
class String>
 
  424template <
class Condition, 
class String>
 
  427    Condition 
const& shouldBeTrue,
 
  428    String 
const& reason,
 
 
  443template <
class F, 
class String>
 
  460template <
class E, 
class F, 
class String>
 
  477template <
class F, 
class String>
 
  494template <
class Condition, 
class String>
 
  498    bool const b = 
static_cast<bool>(shouldBeFalse);
 
 
  528template <
class String>
 
  571#define BEAST_EXPECT(cond) expect(cond, __FILE__, __LINE__) 
  579#define BEAST_EXPECTS(cond, reason) \ 
  580    ((cond) ? (pass(), true) : (fail((reason), __FILE__, __LINE__), false)) 
  590#define BEAST_DEFINE_TESTSUITE_INSERT(                          \ 
  591    Class, Module, Library, manual, priority)                   \ 
  592    static beast::unit_test::detail::insert_suite<Class##_test> \ 
  593        Library##Module##Class##_test_instance(                 \ 
  594            #Class, #Module, #Library, manual, priority) 
  603#ifndef BEAST_DEFINE_TESTSUITE 
  610#ifndef BEAST_NO_UNIT_TEST_INLINE 
  611#define BEAST_NO_UNIT_TEST_INLINE 0 
  641#if BEAST_NO_UNIT_TEST_INLINE 
  642#define BEAST_DEFINE_TESTSUITE(Class, Module, Library) 
  643#define BEAST_DEFINE_TESTSUITE_MANUAL(Class, Module, Library) 
  644#define BEAST_DEFINE_TESTSUITE_PRIO(Class, Module, Library, Priority) 
  645#define BEAST_DEFINE_TESTSUITE_MANUAL_PRIO(Class, Module, Library, Priority) 
  648#include <xrpl/beast/unit_test/global_suites.h> 
  649#define BEAST_DEFINE_TESTSUITE(Class, Module, Library) \ 
  650    BEAST_DEFINE_TESTSUITE_INSERT(Class, Module, Library, false, 0) 
  651#define BEAST_DEFINE_TESTSUITE_MANUAL(Class, Module, Library) \ 
  652    BEAST_DEFINE_TESTSUITE_INSERT(Class, Module, Library, true, 0) 
  653#define BEAST_DEFINE_TESTSUITE_PRIO(Class, Module, Library, Priority) \ 
  654    BEAST_DEFINE_TESTSUITE_INSERT(Class, Module, Library, false, Priority) 
  655#define BEAST_DEFINE_TESTSUITE_MANUAL_PRIO(Class, Module, Library, Priority) \ 
  656    BEAST_DEFINE_TESTSUITE_INSERT(Class, Module, Library, true, Priority) 
Unit test runner interface.
 
void log(std::string const &s)
 
void arg(std::string const &s)
Set the argument string.
 
void fail(std::string const &reason)
 
void testcase(std::string const &name)
 
log_buf< CharT, Traits, Allocator > buf_
 
scoped_testcase & operator<<(T const &t)
 
scoped_testcase & operator=(scoped_testcase const &)=delete
 
scoped_testcase(suite &self, std::stringstream &ss, T const &t)
 
scoped_testcase(suite &self, std::stringstream &ss)
 
scoped_testcase operator<<(T const &t)
 
void operator()(std::string const &name, abort_t abort=no_abort_on_fail)
Open a new testcase.
 
log_os< char > log
Logging output stream.
 
bool expect(Condition const &shouldBeTrue, char const *file, int line)
 
suite & operator=(suite const &)=delete
 
void pass()
Record a successful test condition.
 
static suite * this_suite()
Returns the "current" running suite.
 
void operator()(runner &r)
Invokes the test using the specified runner.
 
static suite ** p_this_suite()
 
bool unexpected(Condition shouldBeFalse)
 
bool unexpected(Condition shouldBeFalse, String const &reason)
 
testcase_t testcase
Memberspace for declaring test cases.
 
std::string const & arg() const
Return the argument associated with the runner.
 
bool unexcept(F &&f, String const &reason)
 
bool expect(Condition const &shouldBeTrue)
Evaluate a test condition.
 
suite(suite const &)=delete
 
bool except(F &&f, String const &reason)
 
virtual void run()=0
Runs the suite.
 
void fail(String const &reason, char const *file, int line)
Record a failure.
 
Replacement for std::thread that handles exceptions in unit tests.
 
static std::string make_reason(String const &reason, char const *file, int line)
 
char const * what() const noexcept override