diff options
| author | Fuwn <[email protected]> | 2022-06-19 20:04:56 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2022-06-19 20:04:56 -0700 |
| commit | 58688c8090afea95a92a147e26ad0392c1bfef14 (patch) | |
| tree | 9a6b33f7d5692d3e1daacb1fa90b07098a0e1e47 /src/context.cc | |
| download | tael-0.1.0.tar.xz tael-0.1.0.zip | |
feat: initial commitv0.1.0
Diffstat (limited to 'src/context.cc')
| -rw-r--r-- | src/context.cc | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/context.cc b/src/context.cc new file mode 100644 index 0000000..f722d48 --- /dev/null +++ b/src/context.cc @@ -0,0 +1,80 @@ +/* + * This file is part of Tatl <https://github.com/Fuwn/tatl>. + * Copyright (C) 2022-2022 Fuwn <[email protected]> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * Copyright (C) 2022-2022 Fuwn <[email protected]> + * SPDX-License-Identifier: GPL-3.0-only + */ + +#include <iostream> + +#include <tael/context.hh> + +#include <tatl/context/set.h> + +namespace tael { + +context::context(const std::string &tag, bool mute) { + tatl_new(&this->inner_context); + tatl_context_set_mute(&this->inner_context, mute); + + if (!tag.empty()) { + tatl_context_set_tag(&this->inner_context, tag.c_str()); + } +} + +context::~context() { tatl_destroy(this->inner_context); } + +std::size_t context::total() const { return this->inner_context._total; } + +std::size_t context::passed() const { return this->inner_context._passed; } + +std::size_t context::failed() const { return this->inner_context._failed; } + +const char *context::tag() const { return this->inner_context._tag; } + +bool context::mute() const { return this->inner_context._mute; } + +int context::exit_code() const { return this->inner_context._exit_code; } + +void context::set_mute(bool mute) { this->inner_context._mute = mute; } + +void context::set_tag(const std::string &tag) { + tatl_context_set_tag(&this->inner_context, tag.c_str()); +} + +void context::summary() { tatl_summary(this->inner_context); } + +void context::add(const char *const tag, int (*test)()) { + tatl_add(&this->inner_context, tag, test); +} + +void context::run() { tatl_run(&this->inner_context); } + +void context::finish() { + this->run(); + + if (!this->inner_context._mute) { + std::cout << '\n'; + } + + this->summary(); + + if (!this->inner_context._mute) { + std::cout << '\n'; + } +} + +} // namespace tael |