diff options
Diffstat (limited to 'src/lc-compliance/results.h')
-rw-r--r-- | src/lc-compliance/results.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/lc-compliance/results.h b/src/lc-compliance/results.h new file mode 100644 index 00000000..2a3722b8 --- /dev/null +++ b/src/lc-compliance/results.h @@ -0,0 +1,47 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2020, Google Inc. + * + * results.h - Test result aggregator + */ +#ifndef __LC_COMPLIANCE_RESULTS_H__ +#define __LC_COMPLIANCE_RESULTS_H__ + +#include <string> +#include <utility> + +/* \todo Check if result aggregator can be shared with self tests in test/ */ +class Results +{ +public: + enum Status { + Fail, + Pass, + Skip, + }; + + using Result = std::pair<Status, std::string>; + + Results(unsigned int planned) + : planned_(planned), passed_(0), failed_(0), skipped_(0) + { + } + + void add(const Result &result); + void add(Status status, const std::string &message); + void fail(const std::string &message); + void pass(const std::string &message); + void skip(const std::string &message); + + int summary() const; + +private: + void printResult(const Result &result); + + unsigned int planned_; + unsigned int passed_; + unsigned int failed_; + unsigned int skipped_; +}; + +#endif /* __LC_COMPLIANCE_RESULTS_H__ */ |