mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-25 17:25:08 +02:00
- Add --results-dir CLI flag to specify output directory
- Default to {tempdir}/test-web-results if not specified
- Capture stdout/stderr from all helper processes (WebContent,
RequestServer, ImageDecoder) to prevent output spam
- Save captured output to per-test files in results directory
- Save test diffs (expected vs actual) to results directory
- Generate HTML index of failed tests with links to diffs
- Display live-updating concurrent test status with progress bar
- Defer warning messages until after test run completes
52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
/*
|
|
* Copyright (c) 2024-2025, Tim Flynn <trflynn89@ladybird.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/ByteString.h>
|
|
#include <AK/Error.h>
|
|
#include <AK/Vector.h>
|
|
#include <LibWebView/Application.h>
|
|
|
|
namespace TestWeb {
|
|
|
|
class Application : public WebView::Application {
|
|
WEB_VIEW_APPLICATION(Application)
|
|
|
|
public:
|
|
explicit Application(Optional<ByteString> ladybird_binary_path);
|
|
~Application();
|
|
|
|
virtual void create_platform_arguments(Core::ArgsParser&) override;
|
|
virtual void create_platform_options(WebView::BrowserOptions&, WebView::RequestServerOptions&, WebView::WebContentOptions&) override;
|
|
virtual bool should_capture_web_content_output() const override;
|
|
ErrorOr<void> launch_test_fixtures();
|
|
|
|
static constexpr u8 VERBOSITY_LEVEL_LOG_TEST_DURATION = 1;
|
|
static constexpr u8 VERBOSITY_LEVEL_LOG_SLOWEST_TESTS = 2;
|
|
static constexpr u8 VERBOSITY_LEVEL_LOG_SKIPPED_TESTS = 3;
|
|
|
|
ByteString test_root_path;
|
|
ByteString results_directory;
|
|
size_t test_concurrency { 1 };
|
|
Vector<ByteString> test_globs;
|
|
|
|
ByteString python_executable_path;
|
|
|
|
bool dump_failed_ref_tests { false };
|
|
bool dump_gc_graph { false };
|
|
|
|
bool test_dry_run { false };
|
|
bool rebaseline { false };
|
|
bool shuffle { false };
|
|
|
|
int per_test_timeout_in_seconds { 30 };
|
|
|
|
u8 verbosity { 0 };
|
|
};
|
|
|
|
}
|