OTest2
A C++ testing framework
|
Go to the documentation of this file.
31 using namespace std::placeholders;
35 class Buffer :
public AssertBuffer {
37 std::vector<AssertBufferPtr> buffers;
42 const Buffer&) =
delete;
44 const Buffer&) =
delete;
56 int c_)
override final;
60 virtual void setForeground(
61 Color color_)
override;
62 virtual void setBackground(
63 Color color_)
override;
64 virtual void setTextStyle(
65 Style style_)
override;
66 virtual void resetAttributes()
override;
67 virtual void commitMessage(
68 const Context& context_)
override;
69 virtual void commitAssertion(
70 const Context& context_)
override;
73 Buffer::Buffer() =
default;
74 Buffer::~Buffer() =
default;
76 void Buffer::appendBuffer(
78 buffers.push_back(buffer_);
83 if(c_ != traits_type::eof()) {
87 std::bind(&AssertBuffer::sputc, _1, traits_type::to_char_type(c_)));
89 return traits_type::not_eof(c_);
92 void Buffer::setForeground(
100 void Buffer::setBackground(
108 void Buffer::setTextStyle(
116 void Buffer::resetAttributes() {
123 void Buffer::commitMessage(
124 const Context& context_) {
131 void Buffer::commitAssertion(
132 const Context& context_) {
151 assert(reporter_ !=
nullptr);
153 reporters.push_back(reporter_);
158 const std::string& name_,
168 std::cref(params_)));
173 const std::string& name_,
183 std::cref(params_)));
188 const std::string& name_,
198 std::cref(params_)));
203 const std::string& name_) {
217 const std::string& file_,
219 auto buffer_(std::make_shared<Buffer>());
223 [buffer_, &context_, condition_, &file_, lineno_](
Reporter* reporter_) {
224 buffer_->appendBuffer(
225 reporter_->enterAssert(context_, condition_, file_, lineno_));
233 auto buffer_(std::make_shared<Buffer>());
237 [buffer_, &context_](
Reporter* reporter_) {
238 buffer_->appendBuffer(
239 reporter_->enterError(context_));
247 const std::string& name_,
262 const std::string& name_,
279 const std::string& name_,
296 const std::string& name_,
virtual void leaveTest(const Context &context_, const std::string &name_, const Parameters ¶ms_, bool result_)=0
Leave entire test.
Style
Style of shown text.
virtual void leaveSuite(const Context &context_, const std::string &name_, const Parameters ¶ms_, bool result_)=0
Leave a suite.
virtual void enterState(const Context &context_, const std::string &name_)=0
Enter a state.
virtual void commitMessage(const Context &context_)=0
Commit (flush) current assertion message.
virtual void enterTest(const Context &context_, const std::string &name_, const Parameters ¶ms_)=0
Enter entire test.
virtual void enterSuite(const Context &context_, const std::string &name_, const Parameters ¶ms_) override
Enter a suite.
virtual void leaveState(const Context &context_, const std::string &name_, bool result_) override
Leave a state.
virtual void leaveSuite(const Context &context_, const std::string &name_, const Parameters ¶ms_, bool result_) override
Leave a suite.
virtual void leaveCase(const Context &context_, const std::string &name_, const Parameters ¶ms_, bool result_) override
Leave a case.
virtual void enterTest(const Context &context_, const std::string &name_, const Parameters ¶ms_) override
Enter entire test.
virtual ~ReporterTee()
Dtor.
virtual void enterCase(const Context &context_, const std::string &name_, const Parameters ¶ms_)=0
Enter a case.
virtual void resetAttributes()=0
Reset currently set text attributes.
virtual void enterCase(const Context &context_, const std::string &name_, const Parameters ¶ms_) override
Enter a case.
virtual AssertBufferPtr enterError(const Context &context_) override
Enter an error report.
virtual void setTextStyle(Style style_)=0
Set style of the shown text.
virtual void setBackground(Color color_)=0
Set background color.
Generic parameters of a run of an testing object.
virtual void leaveTest(const Context &context_, const std::string &name_, const Parameters ¶ms_, bool result_) override
Leave entire test.
Color
List of colors supported by the reporters.
virtual void enterSuite(const Context &context_, const std::string &name_, const Parameters ¶ms_)=0
Enter a suite.
virtual void leaveState(const Context &context_, const std::string &name_, bool result_)=0
Leave a state.
virtual void enterState(const Context &context_, const std::string &name_) override
Enter a state.
virtual void setForeground(Color color_)=0
Set foreground color.
virtual void commitAssertion(const Context &context_)=0
Finish current assertion.
void appendReporter(Reporter *reporter_)
Append a reporter.
virtual void leaveCase(const Context &context_, const std::string &name_, const Parameters ¶ms_, bool result_)=0
Leave a case.
std::shared_ptr< AssertBuffer > AssertBufferPtr
virtual AssertBufferPtr enterAssert(const Context &context_, bool condition_, const std::string &file_, int lineno_) override
Enter an assertion.