Adjust Summary collector to test framework logic
[platform/core/test/security-tests.git] / tests / framework / include / dpl / test / test_results_collector_summary.h
index 617c17f..35e7ba9 100644 (file)
 #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