14namespace sequoia::testing
19 using free_test::free_test;
22 std::filesystem::path source_file()
const;
26 using test_list = std::vector<std::filesystem::path>;
27 using opt_test_list = std::optional<test_list>;
28 using multi_test_list = std::vector<test_list>;
30 enum class modification_time { very_early, early, late, very_late};
34 std::filesystem::path file;
35 modification_time modification{modification_time::early};
40 std::vector<std::filesystem::path> tests{};
41 modification_time modification{modification_time::early};
46 test_outcomes(opt_test_list fail, opt_test_list pass);
48 opt_test_list failures{}, passes{};
53 std::vector<updated_file> stale;
54 std::vector<std::filesystem::path> to_run;
57 std::filesystem::file_time_type m_ResetTime{};
65 void test_instability_analysis_prune_upate(
const project_paths& projPaths);
67 void check_tests_to_run(
const reporter& description,
69 std::string_view cutoff,
70 const file_states& fileStates,
71 std::vector<std::filesystem::path> failures,
72 passing_tests passes);
74 void check_data(std::string_view description,
const test_outcomes& obtained,
const test_outcomes& prediction);
77 static std::chrono::seconds to_duration(modification_time modTime);
79 static auto read(
const std::filesystem::path& file) -> opt_test_list;
81 static void write_or_remove(
const project_paths& projPaths,
const std::filesystem::path& file,
const opt_test_list& tests);
83 static void write_or_remove(
const project_paths& projPaths,
const std::filesystem::path& failureFile,
const std::filesystem::path& passesFile,
const test_outcomes& d);
Core functionality for the testing framework.
class template from which all concrete tests should derive.
Definition: FreeTestCore.hpp:144
Definition: DependencyAnalyzerFreeTest.hpp:17
Paths used by the project.
Definition: ProjectPaths.hpp:469
Definition: Output.hpp:186