15 #ifndef INCG_IRIS_IUTEST_RESULT_REPORTER_HPP_803FD1F7_1FD2_4D1E_9AFC_A5851284316F_
16 #define INCG_IRIS_IUTEST_RESULT_REPORTER_HPP_803FD1F7_1FD2_4D1E_9AFC_A5851284316F_
33 class DefaultGlobalTestPartResultReporter :
public TestPartResultReporterInterface
39 DefaultReportTestPartResult(test_part_result);
41 static void DefaultReportTestPartResult(
const TestPartResult& test_part_result)
43 TestResult* result = UnitTestImpl::current_test_result();
46 result->AddTestPartResult(test_part_result);
50 iuConsole::output(
"%s", test_part_result.make_newline_message().c_str());
52 TestEnv::event_listeners().OnTestPartResult(test_part_result);
59 class NoTestPartResultReporter :
public TestPartResultReporterInterface
65 IUTEST_UNUSED_VAR(result);
72 class NewTestPartResultCheckHelper
75 template<TestPartResult::Type Type>
78 bool operator ()(
const TestPartResult& result)
80 return result.type() == Type;
84 template<TestPartResult::Type Type>
87 bool operator ()(
const TestPartResult& result)
89 return result.type() != Type;
93 template<TestPartResult::Type Type>
96 bool operator ()(
const TestPartResult& result)
98 return result.type() > Type;
105 ReporterHolder() : m_origin(NULL) {}
106 virtual ~ReporterHolder()
110 void Attach(TestPartResultReporterInterface* p)
112 m_origin = TestEnv::GetGlobalTestPartResultReporter();
113 TestEnv::SetGlobalTestPartResultReporter(p);
117 TestEnv::SetGlobalTestPartResultReporter(m_origin);
120 void ReportTestPartResultOrigin(
const TestPartResult& result)
124 m_origin->ReportTestPartResult(result);
128 TestPartResultReporterInterface* m_origin;
132 template<
typename COND,
typename REPORTER=DefaultGlobalTestPartResultReporter>
135 typedef REPORTER _Mybase;
137 Counter() : m_count(0)
139 m_holder.Attach(
this);
147 _Mybase::ReportTestPartResult(result);
152 ReporterHolder m_holder;
158 template<
typename REPORTER=DefaultGlobalTestPartResultReporter>
159 class Collector :
public REPORTER
161 typedef REPORTER _Mybase;
162 typedef ::std::vector<TestPartResult> TestPartResults;
166 m_holder.Attach(
this);
171 m_results.push_back(result);
172 _Mybase::ReportTestPartResult(result);
176 const TestPartResult& GetTestPartResult(
size_t index)
const {
return m_results[index]; }
180 for( TestPartResults::iterator it=m_results.begin(); it != m_results.end(); ++it )
182 m_holder.ReportTestPartResultOrigin(*it);
186 ReporterHolder m_holder;
187 TestPartResults m_results;
196 inline void DefaultReportTestPartResult(
const TestPartResult& test_part_result)
198 DefaultGlobalTestPartResultReporter::DefaultReportTestPartResult(test_part_result);
virtual void ReportTestPartResult(const TestPartResult &result)=0
テスト結果通知受け取り関数
#define IUTEST_CXX_FINAL
final definition
Definition: iutest_compiler.hpp:756
#define IUTEST_CXX_OVERRIDE
override definition
Definition: iutest_compiler.hpp:747
#define IUTEST_CXX_NOEXCEPT_SPEC
noexcept specification definition
Definition: iutest_compiler.hpp:811
iris unit test UnitTest core
#define IUTEST_PP_DISALLOW_COPY_AND_ASSIGN(TypeName)
コピー禁止定義
Definition: iutest_pp.hpp:31
iutest root namespace
Definition: iutest_charcode.hpp:33