#ifndef DPL_TEST_RESULTS_COLLECTOR_SUMMARY_H
#define DPL_TEST_RESULTS_COLLECTOR_SUMMARY_H
+#include <fstream>
+#include <string>
+
+#include <dpl/test/statistic.h>
#include <dpl/test/test_results_collector.h>
namespace DPL {
namespace Test {
-/*
- * Custom test runner results collector. The results (total test cases, failed, etc.) are
- * appended to a file, wihich is parsed after execution of all tests in oreder to
- * display summary view.
- */
-class SummaryCollector : public TestResultsCollectorBase
+class SummaryCollector
+ : public TestResultsCollectorBase
{
- unsigned int m_total, m_succeeded, m_failed, m_ignored; // counters
+public:
+ static TestResultsCollectorBase* Constructor();
+private:
SummaryCollector();
- void Start();
- void Finish();
- void CollectResult(const std::string& /*id*/,
- const std::string& /*description*/,
- const FailStatus status,
- const std::string& /*reason = ""*/);
- void CollectResult(const std::string& /*id*/,
- const std::string& /*description*/,
- const FailStatus status,
- const std::string& /*reason = ""*/,
- const bool& isPerformanceTest = false,
- const std::chrono::system_clock::duration& performanceTime
- = std::chrono::microseconds::zero(),
- const std::chrono::system_clock::duration& performanceMaxTime
- = std::chrono::microseconds::zero());
-public:
- static TestResultsCollectorBase* Constructor();
+ virtual std::string CollectorSpecificHelp() const;
+ virtual bool ParseCollectorSpecificArg(const std::string& arg);
+ virtual void Start();
+ virtual void CollectResult(const std::string& id,
+ const std::string& description,
+ const FailStatus status = FailStatus::NONE,
+ const std::string& reason = "",
+ const bool& isPerformanceTest = false,
+ const std::chrono::system_clock::duration& performanceTime
+ = std::chrono::microseconds::zero(),
+ const std::chrono::system_clock::duration& performanceMaxTime
+ = std::chrono::microseconds::zero());
+ virtual void Finish();
+
+ void writeStats(bool segfault);
+
+ Statistic m_stats;
+ std::string m_filename;
+ std::ofstream m_output;
};
} // namespace Test