15namespace sequoia::testing
20 using free_test::free_test;
23 std::filesystem::path source_file()
const;
27 using test_list = std::vector<std::filesystem::path>;
28 using opt_test_list = std::optional<test_list>;
29 using multi_test_list = std::vector<test_list>;
31 using prune_records = std::vector<prune_record>;
32 using opt_prune_records = std::optional<prune_records>;
34 enum class modification_time { very_early, early, late, very_late};
38 std::filesystem::path file;
39 modification_time modification{modification_time::early};
44 test_outcomes(opt_prune_records fail, opt_prune_records pass);
46 opt_prune_records failures{}, passes{};
51 std::vector<updated_file> stale;
52 std::vector<std::filesystem::path> to_run;
55 std::filesystem::file_time_type m_ResetTime{};
63 void test_instability_analysis_prune_upate(
const project_paths& projPaths);
65 void check_tests_to_run(
const reporter& description,
67 std::string_view cutoff,
68 const file_states& fileStates,
69 std::vector<prune_record> failures,
70 std::vector<prune_record> passes);
72 void check_data(std::string_view description,
const test_outcomes& obtained,
const test_outcomes& prediction);
75 static std::chrono::seconds to_duration(modification_time modTime);
77 static auto read(
const std::filesystem::path& file) -> opt_prune_records;
79 static void write_or_remove(
const project_paths& projPaths,
const std::filesystem::path& file,
const opt_prune_records& tests);
81 static void write_or_remove(
const project_paths& projPaths,
const std::filesystem::path& failureFile,
const std::filesystem::path& passesFile,
const test_outcomes& d);
Facility to detect changes on disk and only run the relevant tests.
Core functionality for the testing framework.
class template from which all concrete tests should derive.
Definition: FreeTestCore.hpp:144
Definition: DependencyAnalyzerFreeTest.hpp:18
Paths used by the project.
Definition: ProjectPaths.hpp:467
Definition: Output.hpp:176