mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
LibTest/Utilities: Add method for TestRunner to print failed test names
If a test run has a lot of tests in it, and they fill up the terminal buffer, it can be difficult to find out exactly which tests have failed from your large test run. Make TestRunner print out an optional Vector of failed test names at the end of the run, and have run-tests add each failed or crashed test to a Vector it uses for this purpose.
This commit is contained in:
parent
64aac345d3
commit
ff8429a749
Notes:
sideshowbarker
2024-07-18 08:46:15 +09:00
Author: https://github.com/ADKaster Commit: https://github.com/SerenityOS/serenity/commit/ff8429a749d Pull-request: https://github.com/SerenityOS/serenity/pull/8845 Reviewed-by: https://github.com/alimpfard
2 changed files with 7 additions and 0 deletions
|
@ -55,6 +55,7 @@ protected:
|
|||
|
||||
virtual Vector<String> get_test_paths() const = 0;
|
||||
virtual void do_run_single_test(const String&) = 0;
|
||||
virtual const Vector<String>* get_failed_test_names() const { return nullptr; }
|
||||
|
||||
String m_test_root;
|
||||
bool m_print_times;
|
||||
|
@ -214,6 +215,9 @@ inline void TestRunner::print_test_results() const
|
|||
} else {
|
||||
outln("{:>.3}s", m_total_elapsed_time_in_ms / 1000.0);
|
||||
}
|
||||
if (auto* failed_tests = get_failed_test_names(); failed_tests && !failed_tests->is_empty()) {
|
||||
outln("Failed tests: {}", *failed_tests);
|
||||
}
|
||||
outln();
|
||||
}
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@ public:
|
|||
protected:
|
||||
virtual void do_run_single_test(const String& test_path) override;
|
||||
virtual Vector<String> get_test_paths() const override;
|
||||
virtual const Vector<String>* get_failed_test_names() const override { return &m_failed_test_names; }
|
||||
|
||||
virtual FileResult run_test_file(const String& test_path);
|
||||
|
||||
|
@ -57,6 +58,7 @@ protected:
|
|||
NonnullRefPtr<Core::ConfigFile> m_config;
|
||||
Vector<String> m_skip_directories;
|
||||
Vector<String> m_skip_files;
|
||||
Vector<String> m_failed_test_names;
|
||||
Regex<PosixExtended> m_skip_regex;
|
||||
bool m_print_all_output { false };
|
||||
};
|
||||
|
@ -120,6 +122,7 @@ void TestRunner::do_run_single_test(const String& test_path)
|
|||
bool crashed_or_failed = test_result.result == Test::Result::Fail || test_result.result == Test::Result::Crashed;
|
||||
bool print_stdout_stderr = crashed_or_failed || m_print_all_output;
|
||||
if (crashed_or_failed) {
|
||||
m_failed_test_names.append(test_path);
|
||||
print_modifiers({ Test::BG_RED, Test::FG_BLACK, Test::FG_BOLD });
|
||||
out("{}", test_result.result == Test::Result::Fail ? " FAIL " : "CRASHED");
|
||||
print_modifiers({ Test::CLEAR });
|
||||
|
|
Loading…
Reference in a new issue