mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-18 15:32:22 +00:00
headless-browser: Use ByteString for paths
This commit is contained in:
parent
260074af87
commit
ae2959959b
Notes:
github-actions[bot]
2024-10-02 15:37:12 +00:00
Author: https://github.com/AtkinsSJ
Commit: ae2959959b
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1585
Reviewed-by: https://github.com/tcl3
1 changed files with 18 additions and 20 deletions
|
@ -2,7 +2,7 @@
|
||||||
* Copyright (c) 2022, Dex♪ <dexes.ttp@gmail.com>
|
* Copyright (c) 2022, Dex♪ <dexes.ttp@gmail.com>
|
||||||
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
|
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
|
||||||
* Copyright (c) 2023, Andreas Kling <kling@serenityos.org>
|
* Copyright (c) 2023, Andreas Kling <kling@serenityos.org>
|
||||||
* Copyright (c) 2023, Sam Atkins <atkinssj@serenityos.org>
|
* Copyright (c) 2023-2024, Sam Atkins <sam@ladybird.org>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-2-Clause
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -357,8 +357,8 @@ static ErrorOr<TestResult> run_ref_test(HeadlessWebContentView& view, URL::URL c
|
||||||
auto mkdir_result = Core::System::mkdir("test-dumps"sv, 0755);
|
auto mkdir_result = Core::System::mkdir("test-dumps"sv, 0755);
|
||||||
if (mkdir_result.is_error() && mkdir_result.error().code() != EEXIST)
|
if (mkdir_result.is_error() && mkdir_result.error().code() != EEXIST)
|
||||||
return mkdir_result.release_error();
|
return mkdir_result.release_error();
|
||||||
TRY(dump_screenshot(*actual_screenshot, TRY(String::formatted("test-dumps/{}.png", title))));
|
TRY(dump_screenshot(*actual_screenshot, ByteString::formatted("test-dumps/{}.png", title)));
|
||||||
TRY(dump_screenshot(*expectation_screenshot, TRY(String::formatted("test-dumps/{}-ref.png", title))));
|
TRY(dump_screenshot(*expectation_screenshot, ByteString::formatted("test-dumps/{}-ref.png", title)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return TestResult::Fail;
|
return TestResult::Fail;
|
||||||
|
@ -433,8 +433,8 @@ static ErrorOr<TestResult> run_test(HeadlessWebContentView& view, StringView inp
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Test {
|
struct Test {
|
||||||
String input_path;
|
ByteString input_path;
|
||||||
String expectation_path;
|
ByteString expectation_path;
|
||||||
TestMode mode;
|
TestMode mode;
|
||||||
Optional<TestResult> result;
|
Optional<TestResult> result;
|
||||||
};
|
};
|
||||||
|
@ -468,21 +468,20 @@ static ErrorOr<void> load_test_config(StringView test_root_path)
|
||||||
|
|
||||||
static ErrorOr<void> collect_dump_tests(Vector<Test>& tests, StringView path, StringView trail, TestMode mode)
|
static ErrorOr<void> collect_dump_tests(Vector<Test>& tests, StringView path, StringView trail, TestMode mode)
|
||||||
{
|
{
|
||||||
Core::DirIterator it(TRY(String::formatted("{}/input/{}", path, trail)).to_byte_string(), Core::DirIterator::Flags::SkipDots);
|
Core::DirIterator it(ByteString::formatted("{}/input/{}", path, trail), Core::DirIterator::Flags::SkipDots);
|
||||||
while (it.has_next()) {
|
while (it.has_next()) {
|
||||||
auto name = it.next_path();
|
auto name = it.next_path();
|
||||||
auto input_path = TRY(FileSystem::real_path(TRY(String::formatted("{}/input/{}/{}", path, trail, name))));
|
auto input_path = TRY(FileSystem::real_path(ByteString::formatted("{}/input/{}/{}", path, trail, name)));
|
||||||
if (FileSystem::is_directory(input_path)) {
|
if (FileSystem::is_directory(input_path)) {
|
||||||
TRY(collect_dump_tests(tests, path, TRY(String::formatted("{}/{}", trail, name)), mode));
|
TRY(collect_dump_tests(tests, path, ByteString::formatted("{}/{}", trail, name), mode));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!name.ends_with(".html"sv) && !name.ends_with(".svg"sv))
|
if (!name.ends_with(".html"sv) && !name.ends_with(".svg"sv))
|
||||||
continue;
|
continue;
|
||||||
auto basename = LexicalPath::title(name);
|
auto basename = LexicalPath::title(name);
|
||||||
auto expectation_path = TRY(String::formatted("{}/expected/{}/{}.txt", path, trail, basename));
|
auto expectation_path = ByteString::formatted("{}/expected/{}/{}.txt", path, trail, basename);
|
||||||
|
|
||||||
// FIXME: Test paths should be ByteString
|
tests.append({ input_path, move(expectation_path), mode, {} });
|
||||||
tests.append({ TRY(String::from_byte_string(input_path)), move(expectation_path), mode, {} });
|
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
@ -492,9 +491,8 @@ static ErrorOr<void> collect_ref_tests(Vector<Test>& tests, StringView path)
|
||||||
TRY(Core::Directory::for_each_entry(path, Core::DirIterator::SkipDots, [&](Core::DirectoryEntry const& entry, Core::Directory const&) -> ErrorOr<IterationDecision> {
|
TRY(Core::Directory::for_each_entry(path, Core::DirIterator::SkipDots, [&](Core::DirectoryEntry const& entry, Core::Directory const&) -> ErrorOr<IterationDecision> {
|
||||||
if (entry.type == Core::DirectoryEntry::Type::Directory)
|
if (entry.type == Core::DirectoryEntry::Type::Directory)
|
||||||
return IterationDecision::Continue;
|
return IterationDecision::Continue;
|
||||||
auto input_path = TRY(FileSystem::real_path(TRY(String::formatted("{}/{}", path, entry.name))));
|
auto input_path = TRY(FileSystem::real_path(ByteString::formatted("{}/{}", path, entry.name)));
|
||||||
// FIXME: Test paths should be ByteString
|
tests.append({ input_path, {}, TestMode::Ref, {} });
|
||||||
tests.append({ TRY(String::from_byte_string(input_path)), {}, TestMode::Ref, {} });
|
|
||||||
return IterationDecision::Continue;
|
return IterationDecision::Continue;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
@ -509,15 +507,15 @@ static ErrorOr<int> run_tests(HeadlessWebContentView* view, StringView test_root
|
||||||
TRY(load_test_config(test_root_path));
|
TRY(load_test_config(test_root_path));
|
||||||
|
|
||||||
Vector<Test> tests;
|
Vector<Test> tests;
|
||||||
TRY(collect_dump_tests(tests, TRY(String::formatted("{}/Layout", test_root_path)), "."sv, TestMode::Layout));
|
TRY(collect_dump_tests(tests, ByteString::formatted("{}/Layout", test_root_path), "."sv, TestMode::Layout));
|
||||||
TRY(collect_dump_tests(tests, TRY(String::formatted("{}/Text", test_root_path)), "."sv, TestMode::Text));
|
TRY(collect_dump_tests(tests, ByteString::formatted("{}/Text", test_root_path), "."sv, TestMode::Text));
|
||||||
TRY(collect_ref_tests(tests, TRY(String::formatted("{}/Ref", test_root_path))));
|
TRY(collect_ref_tests(tests, ByteString::formatted("{}/Ref", test_root_path)));
|
||||||
#ifndef AK_OS_MACOS
|
#ifndef AK_OS_MACOS
|
||||||
TRY(collect_ref_tests(tests, TRY(String::formatted("{}/Screenshot", test_root_path))));
|
TRY(collect_ref_tests(tests, ByteString::formatted("{}/Screenshot", test_root_path)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
tests.remove_all_matching([&](auto const& test) {
|
tests.remove_all_matching([&](auto const& test) {
|
||||||
return !test.input_path.bytes_as_string_view().matches(test_glob, CaseSensitivity::CaseSensitive);
|
return !test.input_path.matches(test_glob, CaseSensitivity::CaseSensitive);
|
||||||
});
|
});
|
||||||
|
|
||||||
size_t pass_count = 0;
|
size_t pass_count = 0;
|
||||||
|
@ -552,7 +550,7 @@ static ErrorOr<int> run_tests(HeadlessWebContentView* view, StringView test_root
|
||||||
else
|
else
|
||||||
outln("");
|
outln("");
|
||||||
|
|
||||||
if (s_skipped_tests.contains_slow(test.input_path.bytes_as_string_view())) {
|
if (s_skipped_tests.contains_slow(test.input_path)) {
|
||||||
test.result = TestResult::Skipped;
|
test.result = TestResult::Skipped;
|
||||||
++skipped_count;
|
++skipped_count;
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue