| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_DIAGNOSTICS_DIAGNOSTICS_WRITER_H_ | 5 #ifndef CHROME_BROWSER_DIAGNOSTICS_DIAGNOSTICS_WRITER_H_ |
| 6 #define CHROME_BROWSER_DIAGNOSTICS_DIAGNOSTICS_WRITER_H_ | 6 #define CHROME_BROWSER_DIAGNOSTICS_DIAGNOSTICS_WRITER_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "chrome/browser/diagnostics/diagnostics_model.h" | 10 #include "chrome/browser/diagnostics/diagnostics_model.h" |
| 11 | 11 |
| 12 namespace diagnostics { | 12 namespace diagnostics { |
| 13 | 13 |
| 14 // Console base class used internally. | 14 // Console base class used internally. |
| 15 class SimpleConsole; | 15 class SimpleConsole; |
| 16 | 16 |
| 17 class DiagnosticsWriter : public DiagnosticsModel::Observer { | 17 class DiagnosticsWriter : public DiagnosticsModel::Observer { |
| 18 public: | 18 public: |
| 19 // The type of formatting done by this writer. | 19 // The type of formatting done by this writer. |
| 20 enum FormatType { | 20 enum FormatType { |
| 21 MACHINE, | 21 MACHINE, |
| 22 LOG, | 22 LOG, |
| 23 HUMAN | 23 HUMAN |
| 24 }; | 24 }; |
| 25 | 25 |
| 26 explicit DiagnosticsWriter(FormatType format); | 26 explicit DiagnosticsWriter(FormatType format); |
| 27 virtual ~DiagnosticsWriter(); | 27 ~DiagnosticsWriter() override; |
| 28 | 28 |
| 29 // How many tests reported failure. | 29 // How many tests reported failure. |
| 30 int failures() { return failures_; } | 30 int failures() { return failures_; } |
| 31 | 31 |
| 32 // What format are we writing things in. | 32 // What format are we writing things in. |
| 33 FormatType format() const { return format_; } | 33 FormatType format() const { return format_; } |
| 34 | 34 |
| 35 // Write an informational line of text in white over black. String must be | 35 // Write an informational line of text in white over black. String must be |
| 36 // UTF8 encoded. A newline will be added for non-LOG output formats. | 36 // UTF8 encoded. A newline will be added for non-LOG output formats. |
| 37 bool WriteInfoLine(const std::string& info_text); | 37 bool WriteInfoLine(const std::string& info_text); |
| 38 | 38 |
| 39 // DiagnosticsModel::Observer overrides | 39 // DiagnosticsModel::Observer overrides |
| 40 virtual void OnTestFinished(int index, DiagnosticsModel* model) override; | 40 void OnTestFinished(int index, DiagnosticsModel* model) override; |
| 41 virtual void OnAllTestsDone(DiagnosticsModel* model) override; | 41 void OnAllTestsDone(DiagnosticsModel* model) override; |
| 42 virtual void OnRecoveryFinished(int index, DiagnosticsModel* model) override; | 42 void OnRecoveryFinished(int index, DiagnosticsModel* model) override; |
| 43 virtual void OnAllRecoveryDone(DiagnosticsModel* model) override; | 43 void OnAllRecoveryDone(DiagnosticsModel* model) override; |
| 44 | 44 |
| 45 private: | 45 private: |
| 46 // Write a result block. For humans, it consists of two lines. The first line | 46 // Write a result block. For humans, it consists of two lines. The first line |
| 47 // has [PASS] or [FAIL] with |name| and the second line has the text in | 47 // has [PASS] or [FAIL] with |name| and the second line has the text in |
| 48 // |extra|. For machine and log formats, we just have [PASS] or [FAIL], | 48 // |extra|. For machine and log formats, we just have [PASS] or [FAIL], |
| 49 // followed by the exact error code and the id. Name and extra strings must be | 49 // followed by the exact error code and the id. Name and extra strings must be |
| 50 // UTF8 encoded, as they are user-facing strings. | 50 // UTF8 encoded, as they are user-facing strings. |
| 51 bool WriteResult(bool success, | 51 bool WriteResult(bool success, |
| 52 const std::string& id, | 52 const std::string& id, |
| 53 const std::string& name, | 53 const std::string& name, |
| 54 int outcome_code, | 54 int outcome_code, |
| 55 const std::string& extra); | 55 const std::string& extra); |
| 56 | 56 |
| 57 scoped_ptr<SimpleConsole> console_; | 57 scoped_ptr<SimpleConsole> console_; |
| 58 | 58 |
| 59 // Keeps track of how many tests reported failure. | 59 // Keeps track of how many tests reported failure. |
| 60 int failures_; | 60 int failures_; |
| 61 FormatType format_; | 61 FormatType format_; |
| 62 | 62 |
| 63 DISALLOW_COPY_AND_ASSIGN(DiagnosticsWriter); | 63 DISALLOW_COPY_AND_ASSIGN(DiagnosticsWriter); |
| 64 }; | 64 }; |
| 65 | 65 |
| 66 } // namespace diagnostics | 66 } // namespace diagnostics |
| 67 | 67 |
| 68 #endif // CHROME_BROWSER_DIAGNOSTICS_DIAGNOSTICS_WRITER_H_ | 68 #endif // CHROME_BROWSER_DIAGNOSTICS_DIAGNOSTICS_WRITER_H_ |
| OLD | NEW |