mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 04:09:13 +00:00
AK+Everywhere: Store JSON object keys as String
This commit is contained in:
parent
70eb0ba1cd
commit
e591636419
Notes:
github-actions[bot]
2025-02-21 00:29:28 +00:00
Author: https://github.com/trflynn89
Commit: e591636419
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3631
Reviewed-by: https://github.com/awesomekling ✅
23 changed files with 119 additions and 111 deletions
|
@ -370,12 +370,12 @@ inline JSFileResult TestRunner::run_file_test(ByteString const& test_path)
|
|||
file_result.logged_messages.append(message.to_string_without_side_effects().to_byte_string());
|
||||
}
|
||||
|
||||
test_json.value().as_object().for_each_member([&](ByteString const& suite_name, JsonValue const& suite_value) {
|
||||
test_json.value().as_object().for_each_member([&](String const& suite_name, JsonValue const& suite_value) {
|
||||
Test::Suite suite { test_path, suite_name };
|
||||
|
||||
VERIFY(suite_value.is_object());
|
||||
|
||||
suite_value.as_object().for_each_member([&](ByteString const& test_name, JsonValue const& test_value) {
|
||||
suite_value.as_object().for_each_member([&](String const& test_name, JsonValue const& test_value) {
|
||||
Test::Case test { test_name, Test::Result::Fail, "", 0 };
|
||||
|
||||
VERIFY(test_value.is_object());
|
||||
|
@ -427,10 +427,10 @@ inline JSFileResult TestRunner::run_file_test(ByteString const& test_path)
|
|||
});
|
||||
|
||||
if (top_level_result.is_error()) {
|
||||
Test::Suite suite { test_path, "<top-level>" };
|
||||
Test::Suite suite { test_path, "<top-level>"_string };
|
||||
suite.most_severe_test_result = Result::Crashed;
|
||||
|
||||
Test::Case test_case { "<top-level>", Test::Result::Fail, "", 0 };
|
||||
Test::Case test_case { "<top-level>"_string, Test::Result::Fail, "", 0 };
|
||||
auto error = top_level_result.release_error().release_value().release_value();
|
||||
if (error.is_object()) {
|
||||
StringBuilder detail_builder;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/ByteString.h>
|
||||
#include <AK/String.h>
|
||||
#include <AK/Vector.h>
|
||||
|
||||
namespace Test {
|
||||
|
@ -23,7 +24,7 @@ enum class Result {
|
|||
};
|
||||
|
||||
struct Case {
|
||||
ByteString name;
|
||||
String name;
|
||||
Result result;
|
||||
ByteString details;
|
||||
u64 duration_us;
|
||||
|
@ -31,7 +32,7 @@ struct Case {
|
|||
|
||||
struct Suite {
|
||||
ByteString path;
|
||||
ByteString name;
|
||||
String name;
|
||||
// A failed test takes precedence over a skipped test, which both have
|
||||
// precedence over a passed test
|
||||
Result most_severe_test_result { Result::Pass };
|
||||
|
|
|
@ -243,36 +243,36 @@ inline void TestRunner::print_test_results_as_json() const
|
|||
|
||||
auto name = suite.name;
|
||||
if (name == "__$$TOP_LEVEL$$__"sv)
|
||||
name = ByteString::empty();
|
||||
name = String {};
|
||||
|
||||
auto path = *LexicalPath::relative_path(suite.path, m_test_root);
|
||||
|
||||
tests.set(ByteString::formatted("{}/{}::{}", path, name, case_.name), result_name);
|
||||
tests.set(MUST(String::formatted("{}/{}::{}", path, name, case_.name)), result_name);
|
||||
}
|
||||
}
|
||||
|
||||
root.set("duration", static_cast<double>(duration_us) / 1000000.);
|
||||
root.set("results", move(tests));
|
||||
root.set("duration"sv, static_cast<double>(duration_us) / 1000000.);
|
||||
root.set("results"sv, move(tests));
|
||||
} else {
|
||||
JsonObject suites;
|
||||
suites.set("failed", m_counts.suites_failed);
|
||||
suites.set("passed", m_counts.suites_passed);
|
||||
suites.set("total", m_counts.suites_failed + m_counts.suites_passed);
|
||||
suites.set("failed"sv, m_counts.suites_failed);
|
||||
suites.set("passed"sv, m_counts.suites_passed);
|
||||
suites.set("total"sv, m_counts.suites_failed + m_counts.suites_passed);
|
||||
|
||||
JsonObject tests;
|
||||
tests.set("failed", m_counts.tests_failed);
|
||||
tests.set("passed", m_counts.tests_passed);
|
||||
tests.set("skipped", m_counts.tests_skipped);
|
||||
tests.set("xfail", m_counts.tests_expected_failed);
|
||||
tests.set("total", m_counts.tests_failed + m_counts.tests_passed + m_counts.tests_skipped + m_counts.tests_expected_failed);
|
||||
tests.set("failed"sv, m_counts.tests_failed);
|
||||
tests.set("passed"sv, m_counts.tests_passed);
|
||||
tests.set("skipped"sv, m_counts.tests_skipped);
|
||||
tests.set("xfail"sv, m_counts.tests_expected_failed);
|
||||
tests.set("total"sv, m_counts.tests_failed + m_counts.tests_passed + m_counts.tests_skipped + m_counts.tests_expected_failed);
|
||||
|
||||
JsonObject results;
|
||||
results.set("suites", suites);
|
||||
results.set("tests", tests);
|
||||
results.set("suites"sv, suites);
|
||||
results.set("tests"sv, tests);
|
||||
|
||||
root.set("results", results);
|
||||
root.set("files_total", m_counts.files_total);
|
||||
root.set("duration", m_total_elapsed_time_in_ms / 1000.0);
|
||||
root.set("results"sv, results);
|
||||
root.set("files_total"sv, m_counts.files_total);
|
||||
root.set("duration"sv, m_total_elapsed_time_in_ms / 1000.0);
|
||||
}
|
||||
outln("{}", root.to_byte_string());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue