123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #pragma once
- #include <cstdint>
- #include <functional>
- #include <iostream>
- #include <string>
- #include <utility>
- #include <vector>
- #include <helpers/assertions.hpp>
- #include <helpers/path_helper.hpp>
- //#include <helpers/temporary_directory.hpp>
- //#include <helpers/temporary_file.hpp>
- #include <helpers/timing.hpp>
- #include <helpers/xml_helper.hpp>
- struct test_status
- {
- std::size_t tests_run = 0;
- std::size_t tests_failed = 0;
- std::size_t tests_passed = 0;
- std::vector<std::string> failures;
- };
- std::string build_name(const std::string &pretty, const std::string &method);
- #define register_test(test) register_test_internal([this]() { test(); }, build_name(__FUNCTION__, #test));
- class test_suite
- {
- public:
- static test_status go();
- protected:
- static void register_test_internal(std::function<void()> t, const std::string &function)
- {
- tests().push_back(std::make_pair(t, function));
- }
- private:
- static std::vector<std::pair<std::function<void(void)>, std::string>> &tests();
- };
|