Split asset reload platform policy

This commit is contained in:
2026-06-05 11:44:28 +02:00
parent c4d00258ff
commit 0236fc6620
8 changed files with 168 additions and 31 deletions

View File

@@ -799,6 +799,54 @@ void asset_file_load_policy_preserves_platform_reload_behavior(pp::tests::Harnes
std::filesystem::remove(temp_path);
}
void asset_file_load_policy_preserves_family_reload_behavior(pp::tests::Harness& harness)
{
const auto missing_desktop = pp::platform::plan_asset_file_load_with_probe(
pp::platform::PlatformFamily::windows,
false,
7,
{});
PP_EXPECT(harness, !missing_desktop.should_read_file);
PP_EXPECT(harness, !missing_desktop.skipped_load_result);
PP_EXPECT(harness, missing_desktop.last_write_time == 7);
const auto stale_desktop = pp::platform::plan_asset_file_load_with_probe(
pp::platform::PlatformFamily::macos,
true,
7,
{ true, 7 });
PP_EXPECT(harness, !stale_desktop.should_read_file);
PP_EXPECT(harness, !stale_desktop.skipped_load_result);
PP_EXPECT(harness, stale_desktop.last_write_time == 7);
const auto fresh_desktop = pp::platform::plan_asset_file_load_with_probe(
pp::platform::PlatformFamily::windows,
true,
7,
{ true, 8 });
PP_EXPECT(harness, fresh_desktop.should_read_file);
PP_EXPECT(harness, fresh_desktop.skipped_load_result);
PP_EXPECT(harness, fresh_desktop.last_write_time == 8);
const auto first_mobile = pp::platform::plan_asset_file_load_with_probe(
pp::platform::PlatformFamily::ios,
false,
7,
{});
PP_EXPECT(harness, first_mobile.should_read_file);
PP_EXPECT(harness, first_mobile.skipped_load_result);
PP_EXPECT(harness, first_mobile.last_write_time == 7);
const auto repeated_web = pp::platform::plan_asset_file_load_with_probe(
pp::platform::PlatformFamily::webgl,
true,
7,
{ true, 99 });
PP_EXPECT(harness, !repeated_web.should_read_file);
PP_EXPECT(harness, repeated_web.skipped_load_result);
PP_EXPECT(harness, repeated_web.last_write_time == 7);
}
void platform_services_dispatch_ppbr_export_directory_policy(pp::tests::Harness& harness)
{
FakePlatformServices fake("unused");
@@ -929,6 +977,9 @@ void platform_policy_preserves_ui_asset_and_input_rules(pp::tests::Harness& harn
PP_EXPECT(harness, pp::platform::platform_enables_live_asset_reloading(pp::platform::PlatformFamily::windows));
PP_EXPECT(harness, pp::platform::platform_enables_live_asset_reloading(pp::platform::PlatformFamily::macos));
PP_EXPECT(harness, !pp::platform::platform_enables_live_asset_reloading(pp::platform::PlatformFamily::ios));
PP_EXPECT(harness, pp::platform::platform_uses_asset_file_mtime_reload(pp::platform::PlatformFamily::windows));
PP_EXPECT(harness, pp::platform::platform_uses_asset_file_mtime_reload(pp::platform::PlatformFamily::macos));
PP_EXPECT(harness, !pp::platform::platform_uses_asset_file_mtime_reload(pp::platform::PlatformFamily::android));
PP_EXPECT(harness, pp::platform::platform_saves_native_ui_state(pp::platform::PlatformFamily::windows));
PP_EXPECT(harness, pp::platform::platform_saves_native_ui_state(pp::platform::PlatformFamily::macos));
PP_EXPECT(harness, !pp::platform::platform_saves_native_ui_state(pp::platform::PlatformFamily::webgl));
@@ -990,6 +1041,9 @@ int main()
harness.run(
"asset file load policy preserves platform reload behavior",
asset_file_load_policy_preserves_platform_reload_behavior);
harness.run(
"asset file load policy preserves family reload behavior",
asset_file_load_policy_preserves_family_reload_behavior);
harness.run(
"platform services dispatch ppbr export directory policy",
platform_services_dispatch_ppbr_export_directory_policy);